Writing a plugin: Need to get including class's name. Help?

Hello.

For reference, here is some sample code that exemplifies what I am trying to do:gist:102816 · GitHub

I am trying to dynamically defined a class, whose name is either passed in as a parameter or based on the including class name.

So if I had something like this: class Green; acts_as_duck; end

I would expect the generated class to be called "GreenDuck", and to be defined within the "Green" class.

The problem is that no matter what I do, the dynamically referenced class name is always just "Class".

Because what you have is a class method, self is the class that acts_as_duck is being called on, ie self == Green, and so self.name will be 'Green'. self.class is asking ruby what the class of Green is, and since classes are of class Class you end up with the result you had.

Fred