Skip to content

Instantly share code, notes, and snippets.

@davidrichards
Created August 17, 2012 03:05
Show Gist options
  • Save davidrichards/3375580 to your computer and use it in GitHub Desktop.
Save davidrichards/3375580 to your computer and use it in GitHub Desktop.
greeting = "Hello"
def dumb_greeter
puts greeting
end
def invasive_greeter(b)
puts b.eval("greeting")
end
block_greeter = ->{puts greeting}
def parent_greeter
greeting = "Hello"
child_greeter
end
def child_greeter
puts greeting
end
dumb_greeter
# NameError: undefined local variable or method `greeting' for main:Object
invasive_greeter binding()
# Hello
block_greeter.call
# Hello
parent_greeter
# NameError: undefined local variable or method `greeting' for main:Object
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment