lambdaの動作

いや,俺がおかしいことやってるかもだけど.

class Foo
  Map = {
    'key1' = lambda { |bar|
      do something
    }
    'key2' = lambda { |bar|
      do something
    }
  }

  def baz(key, bar)
    Map[key].call(bar)
  end
end

って時に,do somethingの中から呼び出し元(Fooオブジェクトのインスタンス)のインスタンス変数とかって何とかして参照出来ないのかなと.やっぱりインスタンスに属する値を使うlambdaをクラスの定数として用意した方がおかしいか?

定数にした方がすっきりして見えるってだけで無理する必要ないのだけど,Rubyなら何とか出来そうとかなぁとか.