Method: String#evaluate
- Defined in:
- lib/nuggets/string/evaluate.rb
#evaluate(binding = TOPLEVEL_BINDING) ⇒ Object
call-seq:
str.evaluate(binding = TOPLEVEL_BINDING) => new_str
Basically turns Kernel#eval into an instance method of String – inspired by Ruby Cookbook example 1.3. This allows to pre-populate strings with substitution expressions (“#…”) that can get evaluated in a different environment (= binding) at a later point.
37 38 39 |
# File 'lib/nuggets/string/evaluate.rb', line 37 def evaluate(binding = TOPLEVEL_BINDING) eval(%Q{%Q{#{self}}}, binding) end |