From: Jonas Galvez Date: 2005-09-28T06:56:25+09:00 Subject: Re: Dynamically generating classes? 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()? Hmm, apparently: MyClass = Class.new { attr_accessor :value def initialize(value) self.value = value end } o = MyClass.new(10) puts o.value But now I ask, how do I dynamically set its name ("MyClass") in the global namespace? --Jonas Galvez