概要
Module#define_method(*name) -> nil
詳細
ブロックを与えた場合、メソッドの実行時に指定しがブロックが レシーバクラスの
インスタンスの上で BasicObject#instance_eval されます。
サンプルコード
require 'tbpgr_utils' class Hoge %w{hoge hige hage}.each do |method_name| define_method method_name do |msg| "#{method_name}-#{msg}" end end end hoge = Hoge.new bulk_puts_eval binding, <<-EOS hoge.hoge('message') hoge.hige('message') hoge.hage('message') EOS __END__ 下記はTbpgrUtils gemの機能 bulk_puts_eval https://rubygems.org/gems/tbpgr_utils https://github.com/tbpgr/tbpgr_utils
出力
$ ruby module_define_method.rb hoge.hoge('message') # => "hoge-message" hoge.hige('message') # => "hige-message" hoge.hage('message') # => "hage-message"