Hi --

On Mon, 12 Jul 2004, Joel VanderWerf wrote:

> Elias Athanasopoulos wrote:
> > Hello!
> > 
> > I want to create class methods at run-time, so I use
> > Object#const_missing. But, I must to know the name of
> > the class method which was called. Is there a way to do 
> > this via the Ruby C API (or in Ruby in general)?
> > 
> > I.e. when the user calls Foo.bar, I need to know (inside
> > const_missing) that somebody tried to call the class
> > method 'bar' of Foo.
> 
> Is this what you want?
> 
> class Object
>    def self.const_missing(name)
>      const_set(name, kl = Class.new)
>      class << kl
>        def method_missing(m, *args)
>          puts "tried to call #{m} in #{self}"
>        end
>      end
>      kl
>    end
> end
> 
> Foo.bar   # ==> tried to call bar in Foo

*Much* cooler than my answer! :-)


David

-- 
David A. Black
dblack / wobblini.net