From: "David A. Black" Date: 2007-09-25T21:44:44+09:00 Subject: Re: create a class in a class with eval Hi -- On Tue, 25 Sep 2007, Gaspard Bucher wrote: > I need to eval code that will create globally available classes. I tried this : > > class Test > def makeA > Module.send(:eval, "class A; end") > # same with: eval "class A; end" > puts Test.const_get('A') # => Test::A > puts Module.const_get('A') # => raise NameError, why ? > end > end > > eval "class B; end" > puts Module.const_get('B') # => B > > Test.new.makeA #=> bang You could do: Module.module_eval "class A; end" or (preferable, in my opinion): Module.const_set("A", Class.new) David -- Upcoming training from Ruby Power and Light, LLC: * Intro to Ruby on Rails, Edison, NJ, October 23-26 * Advancing with Rails, Edison, NJ, November 6-9 Both taught by David A. Black. See http://www.rubypal.com for more info!