class ERB
def new_toplevel(vars = nil)
defined within the binding.
prevent it from overwriting a variable of the same name already
each symbol `symbol` is defined as a new variable to hide and
Argument `symbols` is an array of symbols;
See [Default Binding][default binding].
used to create a default binding for a call to #result.
Returns a new binding based on `TOPLEVEL_BINDING`;
new_toplevel(symbols) -> new_binding
:call-seq:
:markup: markdown
def new_toplevel(vars = nil) b = TOPLEVEL_BINDING if vars vars = vars.select {|v| b.local_variable_defined?(v)} unless vars.empty? return b.eval("tap {|;#{vars.join(',')}| break binding}") end end b.dup end