Method: Skeem::Runtime#evaluate

Defined in:
lib/skeem/runtime.rb

#evaluate(aKey) ⇒ Object

rubocop: disable Lint/UselessRescue



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/skeem/runtime.rb', line 40

def evaluate(aKey)
  key_value = normalize_key(aKey)
  if include?(key_value)
    entry = environment.fetch(key_value)
    result = nil
    begin
      result = entry.evaluate(self)
    rescue NoMethodError => e
      # $stderr.puts 'In rescue block'
      # $stderr.puts key_value.inspect
      # $stderr.puts entry.inspect
      # $stderr.puts entry.expression.inspect
      raise e
    end
    result
  else
    err = StandardError
    key = aKey.kind_of?(SkmIdentifier) ? aKey.value : key_value
    err_msg = "Unbound variable: '#{key}'"
    raise err, err_msg
  end
end