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

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

···

On 9/14/07, Ben Burkert <ben@benburkert.com> 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.

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.

···

On Sep 14, 2007, at 4:54 PM, Wilson Bilkovich wrote:

On 9/14/07, Ben Burkert <ben@benburkert.com> 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