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