Ruby の binding オブジェクトからローカル変数にアクセスする

Binding#local_variable_get でローカル変数にアクセスする事が出来ます。

def func a, b
    add = a + b

    # このメソッド内のコンテキストを返す
    binding
end

context = func 1, 2

# #local_variable_get でコンテキストの変数を取得する
p context.local_variable_get(:a)
# => 1
p context.local_variable_get(:b)
# => 2

# もしくは #eval を経由してもよい
p context.eval("add")
# => 3