From: "Ara.T.Howard" Date: 2005-09-28T06:54:33+09:00 Subject: Re: Dynamically generating classes? On Wed, 28 Sep 2005, Jonas Galvez wrote: > Hi, > > In Python I can do this: > >>>> def create_class(name): > ... import new > ... c = new.classobj(name, tuple([object]), {}) > ... def __init__(self, value): > ... self.value = value > ... setattr(c, "__init__", new.instancemethod(__init__, None, c)) > ... return c > ... >>>> MyClass = create_class("MyClass") >>>> >>>> obj = MyClass(value=10) >>>> print obj.value > 10 > > Is there anything similar in Ruby? Or do I need to use eval()? much more easily: harp:~ > cat a.rb klass = Class::new { def foo 42 end def bar 'forty-two' end } k = klass::new p k.foo MyKlass = klass k = MyKlass::new p k.bar harp:~ > ruby a.rb 42 "forty-two" cheers. -a -- =============================================================================== | email :: ara [dot] t [dot] howard [at] noaa [dot] gov | phone :: 303.497.6469 | Your life dwells amoung the causes of death | Like a lamp standing in a strong breeze. --Nagarjuna ===============================================================================