I'm sure there's a simple answer for this; I just can't seem to find it. I made a nested function in Ruby, and I was having trouble accessing variables from the outer function inside the inner function:
def foo(x)
def bar
puts x
end
bar
42
end
foo(5)
I get: NameError: undefined local variable or method
x' for main:Object`
The analogous Python code works:
def foo(x):
def bar():
print x
bar()
return 42
foo(5)
So how do I do the same thing in Ruby?
As far as I know, defining a named function within a function does not give you access to any local variables.
What you can do instead is use a Proc: