class Keisan::Functions::ToH
Public Class Methods
new()
click to toggle source
Calls superclass method
Keisan::Function::new
# File lib/keisan/functions/to_h.rb, line 4 def initialize super("to_h", 1) end
Public Instance Methods
evaluate(ast_function, context = nil)
click to toggle source
# File lib/keisan/functions/to_h.rb, line 13 def evaluate(ast_function, context = nil) validate_arguments!(ast_function.children.count) context ||= Context.new child = ast_function.children[0].simplify(context) case child when AST::List AST::Hash.new(child.children) when AST::Hash child else raise Exceptions::InvalidFunctionError.new("Cannot call to_h on a #{child.class}") end end
simplify(ast_function, context = nil)
click to toggle source
# File lib/keisan/functions/to_h.rb, line 29 def simplify(ast_function, context = nil) evaluate(ast_function, context) end
value(ast_function, context = nil)
click to toggle source
# File lib/keisan/functions/to_h.rb, line 8 def value(ast_function, context = nil) validate_arguments!(ast_function.children.count) evaluate(ast_function, context).value(context) end