Bug #13337 ยป doc-eval-local-var.patch
doc/syntax/assignment.rdoc | ||
---|---|---|
the local variable is assigned-to then you attempt to call a nonexistent
|
||
method.
|
||
== Local Variables and eval
|
||
Using +eval+ to evaluate Ruby code will allow access to local variables in
|
||
the same scope, even if if the local variables are not assigned until after
|
||
the call to +eval+. However, local variables set inside the call to +eval+
|
||
will not be reflected in the surrounding scope. Inside the call to +eval+,
|
||
local variables in the scope and local variables defined inside the call to
|
||
+eval+ will be accessible. However, you will not be able to access local
|
||
variables assigned in previous or subsequent calls to +eval+ in the same
|
||
scope. Consider each +eval+ call a separate nested scope. Example:
|
||
def m
|
||
eval "bar = 1"
|
||
lvs = eval "baz = 2; ary = [local_variables, foo, baz]; x = 2; ary"
|
||
eval "quux = 3"
|
||
foo = 1
|
||
lvs << local_variables
|
||
end
|
||
m
|
||
# => [[:baz, :ary, :x, :lvs, :foo], nil, 2, [:lvs, :foo]]
|
||
== Instance Variables
|
||
Instance variables are shared across all methods for the same object.
|