class Bindy::Context

Attributes

variables[R]

Public Class Methods

new(variables={}) click to toggle source
# File lib/bindy/context.rb, line 7
def initialize(variables={})
  @variables = variables
end

Public Instance Methods

evaluate(expression) click to toggle source
# File lib/bindy/context.rb, line 11
def evaluate(expression)
  raise ArgumentError, "Expression must be a string (#{expression})" unless expression.kind_of?(String)
  Language.parse(expression).evaluate(self)
end
var(name) click to toggle source
# File lib/bindy/context.rb, line 16
def var(name)
  name.split('.').inject(variables) do |vars, key| 
    vars.fetch(key) { vars.fetch(key.to_sym) }
  end
rescue KeyError
  raise ArgumentError, "Undefined variable #{name}"
end