Define method hook

Is there a way to intercept method defines, so that i can setup a
callback whenever a new method is defined for a class? I’m looking
for something that works with the def keyword, and doesn’t require
any extensions.

-Ben

On 9/14/07, Ben B. [email protected] wrote:

Is there a way to intercept method defines, so that i can setup a
callback whenever a new method is defined for a class? I’m looking
for something that works with the def keyword, and doesn’t require
any extensions.

Yep. Module#method_added
If you do this:

class Example
def self.method_added(meth)
p meth
end
end

After that, this code:
class Example;def foo(baz);5;end;end

…will print out: :foo

Is there a way to intercept method defines, so that i can setup a
callback whenever a new method is defined for a class?

class Module
def method_added(method_name)
p [caller[0], self, method_name]
end
end

class Foo
def bar
end
end

gegroet,
Erik V.

great, thanks.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs