|
I couldn't get the code in the article for this pattern to run, but with some help from friends I modified it a little. This worked for me:
# file ExtraMethods.rb
#
module ExtraMethods
def self.append_features(base)
super
base.extend(ClassMethods)
end
module ClassMethods
def additional_method(message)
my_module_string = "def example() puts \"Message for you!: '#{message}'\" end"
module_eval(my_module_string)
end
end
end
#!/usr/bin/ruby
# file simpledriver.rb
#
require 'ExtraMethods'
class SomeClass
include ExtraMethods
additional_method "your dynamic method insertion worked"
end
test = SomeClass.new
test.example
|