Why does local_variables return local variables that have not yet been assigned (assigned after calling local_variables )?
a = 2 @aa = 1 # a = b # this will raise an error. puts "local: #{ local_variables }" puts "instance: #{ instance_variables }" b = 2 @bb = 2 puts "local: #{ local_variables }" puts "instance: #{ instance_variables }"
result:
local: [:a, :b] instance: [:@aa] local: [:a, :b] instance: [:@aa, :@bb]
I expect behavior like instance_variables , which returns only those variables that were already assigned at that moment.
source share