A
Andy Frank
I am experimenting with a test class to figure out why self.class_eval
does not seem to work. Please see code below:
class Xclass
def add_method(meth, work)
self.class_eval %Q{
def #{meth}
#{work}
end
}
end
end
This throws an error when I call the class like so:
x = Xclass.new
x.add_method("add", "puts \"Hello World\"")
Error:
rb:3:in `add_method': undefined method `class_eval' for #
(NoMethodError)
from test_dyn.rb:15:in `'
The fix has been to change self.class_eval to Xclass.class_eval.
Anyone know why this is the case. Shouldn't self work.
does not seem to work. Please see code below:
class Xclass
def add_method(meth, work)
self.class_eval %Q{
def #{meth}
#{work}
end
}
end
end
This throws an error when I call the class like so:
x = Xclass.new
x.add_method("add", "puts \"Hello World\"")
Error:
rb:3:in `add_method': undefined method `class_eval' for #
(NoMethodError)
from test_dyn.rb:15:in `'
The fix has been to change self.class_eval to Xclass.class_eval.
Anyone know why this is the case. Shouldn't self work.