If you execute your script on Ruby 1.9, you can use
Object#define_singleton_method to add a method to an object.
# --- begin: example ---
class MyClass
end
MyClass.send(:define_method, :poof) {'I say poof!'}
x = MyClass.new
y = MyClass.new
x.define_singleton_method( :poof_singleton ) { "Here is in a singleton
method." }
x.poof_singleton #=> "Here is in a singleton method."
y.poof_singleton #=> NoMethodError
# --- end: example ---
The method Object#define_singleton_method is able to be used on Ruby
1.9, but I couldn't find out its doc...
···
2010/9/18 David Miller <dmiller@tecolote.net>:
Hello
If I want to add a method to a class, I can use send as shown below. Is
there a similar way to use send to add a method to an object?
class MyClass
end
MyClass.send(:define_method, :poof) {'I say poof!'}
x = MyClass.new
x.poof # => "I say poof!"
I can define an object method as follows:
def x.object_poof
'I say object_poof'
end
x.object_poof # => "I say object_poof"
I would like to use send to define object methods but I have not figured
out how.