From: "David A. Black" Date: 2004-07-12T06:22:18+09:00 Subject: Re: const_missing 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