Ruby 4.1 リファレンスマニュアル

instance method Binding#local_variables

local_variables -> [Symbol]Ruby 2.2.0 から[permalink][rdoc][edit]

ローカル変数の一覧を Symbol の配列で返します。

def foo
  a = 1
  2.times do |n|
    p binding.local_variables #=> [:a, :n]
  end
end

番号指定パラメータ(_1 など)は 4.0 からローカル変数として扱われなくなり、返り値に含まれなくなりました。

[1].each do
  p _1                      # => 1
  p binding.local_variables # => [](Ruby 3.4 以前は [:_1])
end

番号指定パラメータ自体は従来どおり参照できます(メソッド呼び出し/番号指定パラメータ)。 Binding から番号指定パラメータを扱うには Binding#implicit_parameters を使用してください。

このメソッドは以下のコードと同様の動作をします。

binding.eval("local_variables")