メソッドを動的に呼び出したい。
今までは、メソッドを動的に呼び出したいときは、
以下の手順を踏んでいた。
1.evalでメソッドが記述されているファイルをrequire
2.evalでメソッドを実行。
ただ、この方法だとメソッドに引数を渡すのが、
うまくできなくなったんで、__send__を使うことにした。
メソッドを呼び出すメソッドを以下のような感じで書いている。
def local_exec(method) hs = read_config_file() eval('require hs[method]') return __send__(method.intern) end
read_config_file()は以下のようにメソッド名と
そのファイルが配置されている場所を記述した設定ファイルを
記述したものを読み込み、hashに格納してくれる。
hello : ./abc/hello.rb
メソッドを呼び出すときは
local_exec("hello")
http://www.namikilab.tuat.ac.jp/~sasada/prog/rb1.html
極めるメソッド
http://www.ync-net.co.jp/~kaz/diary/?date=20060502#p01