配列にメソッドを登録して、順次評価するようなプログラムが作りたく。。。書籍やリファレンスマニュアルなど見て試行錯誤しました。どうやら、以下でいけるらしい。これが本式なのかわからないけど、結果的に関数ポインタ的な使い方になりました。
def rule1() "rule1 called" end def rule2() "rule2 called" end def rule3() "rule3 called" end rules = [:rule1, :rule2, :rule3] rules.each {|r| p Object.new.send(r)}
ちなみに、rule1〜3は何をやらせようとしているのかといいますと。。。Rubyを内部DSLとして利用しようということで、外部ファイルにruleを1つずつrubyで定義し、そのファイルを読み込みevalで取り込みます。各ruleの発火可能性をまとめてチェックするのにsendを利用するのが良さそう。。。ということです。