def crazytown(&block) String.new.instance_eval(&block) end crazytown do ScaryConst = 5 p ScaryConst end p ScaryConst p String::ScaryConst
prints:
5 5 rspeq.rb:11: warning: toplevel constant ScaryConst referenced by String::ScaryConst 5
def crazytown(&block) String.new.instance_eval(&block) end crazytown do ScaryConst = 5 p ScaryConst end p ScaryConst p String::ScaryConst
5 5 rspeq.rb:11: warning: toplevel constant ScaryConst referenced by String::ScaryConst 5