Christoph R.
11/8/2004 8:04:00 AM
itsme213 schrieb:
>I have defined class X. Anytime X is inherited (say, by Y), I want to
>generate a global function definition
> def y(...) { ... }
>
>The hook I am using is
>class X
> def self.inherited(child)
> ...
> end
>end
>
>What should go into the ...? Should it be
>
>Object.class_eval "def #{child.name.downcase} ... end" ?
>
>
Well this should work, however, global functions are
usually private so you should use something along the
lines of
class X
def self.inherited(child)
::Object.class_eval <<-Body
private
def #{child.to_s.downcase}
p "hello from #{child}"
end
Body
end
private_class_method :inherited
end
class Y < X
end
y()
/Christoph