Pluginfactory.rb - my door to insanity

T

Tony Mobily

Hello,

As a matter of principle, I am studying the pluginfactory plugin
(http://raa.ruby-lang.org/project/pluginfactory/).

At first, I thought the author was insane (in a good way!).

I am going bananas, trying to understand the pluginfactory.rb module.

At one point, he defines:

### Inheritance callback -- Register subclasses in the
derivatives hash
### so that ::create knows about them.
def inherited( subclass )

NOW! You night say "No wait, inherited needs to be a class method,
not a n instance method.

Well, the module does this when it's included:

### Inclusion callback -- extends the including class.
def self::included( klass )
klass.extend( self )
end

This means that all of the instance methods defined in the plugin
become... part of the class!
This opened in my brain the door to insanity.

Is this technique used a lot? What I don't like about it, is that the
instance methods in the module become both instance methods and class
methods in the includer.
This could possibly create clutter in the class' methods.


For what I understand, with include/extend is never, ever possible to
add class methods to a class using include or extend (of course, you
can use inheritance, but that would be too "normal").

Guys, I am in awe.

Merc.
 
T

Tony Mobily

Hi,

OK. While this is indeed a nice "trick" (in fact, it's really
smart!), it still looks like a bit of a hack to me.

Does anybody know if Matz is planning on ad a method to include class
instance methods into another class without using inheritance?

In fact... do you think that doing so is actually useful?

Bye,

Merc.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,571
Members
45,045
Latest member
DRCM

Latest Threads

Top