class JSON::Lisp::Env
Attributes
constants[R]
Public Class Methods
new(constants)
click to toggle source
# File lib/json/lisp/env.rb, line 6 def initialize(constants) @constants = constants.dup.freeze end
Public Instance Methods
evaluate(expression)
click to toggle source
# File lib/json/lisp/env.rb, line 10 def evaluate(expression) if expression.is_a?(Array) fn = constants[expression[0]] params = expression[1..-1].map { |x| evaluate(x) } fn[*params] elsif expression.is_a?(String) constants[expression] else expression end end
evaluate_json(json_string)
click to toggle source
# File lib/json/lisp/env.rb, line 22 def evaluate_json(json_string) evaluate(JSON.parse(json_string)) end