Metaprogramming Basics
Define Method
define_method creates a method from a block.
Define Method
define_method.rb
suffix =
formatter_class = Class.new do
define_method(:decorate) do |text|
"#{text}#{suffix}"
end
end
formatter = formatter_class.new
message = formatter.decorate("Ruby")
puts "suffix=#{suffix}"
puts "message=#{message}"
suffix =
formatter_class = Class.new do
define_method(:decorate) do |text|
"#{text}#{suffix}"
end
end
formatter = formatter_class.new
message = formatter.decorate("Ruby")
puts "suffix=#{suffix}"
puts "message=#{message}"
suffix =
formatter_class = Class.new do
define_method(:decorate) do |text|
"#{text}#{suffix}"
end
end
formatter = formatter_class.new
message = formatter.decorate("Ruby")
puts "suffix=#{suffix}"
puts "message=#{message}"
define method
`define_method` is useful when several methods follow a shared pattern.