Written by Gilang Mahardhika on 15 Jun 2013.
Dengan menggunekan define_method
memungkinkan untuk membuat suatu method baru secara dinamis.
class Foo
define_method("bar") do
"bar"
end
end
Foo.new.bar #return "bar"
define_method
juga memungkinkan kita membuat suatu method baru dengan argumen
class Foo
define_method("bar") do |argument|
"bar and #{argument}"
end
end
Foo.new.bar("foo") #return "bar and foo"
Juga memungkinkan membuat method yang lebih dinamis dengan array
class Foo
["one", "two", "three"].each do |number|
define_method("print_#{number}") do |name|
"This is number #{number}, #{name}"
end
end
end
Foo.new.print_one("John") #return "This is number one, John"
Foo.new.print_two("John") #return "This is number two, John"
Foo.new.print_three("John") #return "This is number three, John"