Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2014
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. require 'ostruct'
  2.  
  3. not_in_locals = "we don't want this"
  4. locals = {a: 1, b: 2}
  5. my_binding = OpenStruct.new(locals).instance_eval { binding }
  6. p my_binding
  7. p eval("a", my_binding) #good, we want this
  8. p eval("b", my_binding) #good, we want this
  9. p eval("not_in_locals", my_binding) #bad, don't want it to access this, but it can
  10.  
  11. ruby binding_of_hash.rb
  12. foo = foo value
  13. baz = 42
  14. binding_of_hash.rb:10:in `eval': undefined local variable or method `not_in_hash' for #<HashBinding:0x007fcc0b9ec1e8> (NameError)
  15. from binding_of_hash.rb:10:in `eval'
  16. from binding_of_hash.rb:10:in `evaluate'
  17. from binding_of_hash.rb:20:in `<main>'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement