まとめてメッセージ送信
メッセージ(メソッド名と引数)の配列をあるオブジェクトに対してまとめて送信するには。
んんー。とりあえずこんなの考えてみました。
class Object def send_mesgs(mesgs) mesgs.each do |meth, *args| send(meth, *args) end end end mesgs = [[:push, 1], [:push, 2], [:push, 3]] ary = [] ary.send_mesgs(mesgs) p ary # => [1, 2, 3]
(追記) よくよく考えたら以下でOKでした。
class Object def send_mesgs(mesgs) mesgs.each do |args| send(*args) end end end mesgs = [[:push, 1], [:push, 2], [:push, 3]] ary = [] ary.send_mesgs(mesgs) p ary # => [1, 2, 3]