From: "John W. Long" Date: 2006-01-27T05:14:39+09:00 Subject: Module Eval Syntax >> class MyModule; end => nil >> MyModule.class_variables => [] >> MyModule.module_eval do ?> @@test = true >> end => true >> @@test => true >> MyModule.module_eval "@@weird = true" => true >> @@weird NameError: uninitialized class variable @@weird in Object from (irb):8 >> MyModule.class_variables => ["@@weird", "@@test"] >> Object.class_variables => ["@@test"] What in the world is going on here? Why does the block syntax eval differently than the string syntax? And why does @@test get defined on both MyModule and Object? -- John Long http://wiseheartdesign.com