¿Cómo listar las variables locales en Ruby?

def method a = 3 b = 4 some_method_that_gives # [a, b] end 

local_variables

Da salida a matriz de símbolos, presentando variables. En su caso: [:a, :b]

local_variables enumera las variables locales pero las enumera antes de que se definan. Mira esto:

 p local_variables a = 1 p local_variables 

esto produce

 [:a] [:a] 

que puede no ser lo que esperas. ¿Contraste con lo defined?

 p defined? a a = 1 p defined? a 

lo que produce el más esperado

 nil "local-variable"