class Expressionist::Expression
Public Class Methods
new(value)
click to toggle source
# File lib/expressionist/expression.rb, line 10 def initialize(value) if value.kind_of?(Parser) @parser = value else @executable = value end end
Public Instance Methods
call(context = {}, executable = nil)
click to toggle source
# File lib/expressionist/expression.rb, line 22 def call(context = {}, executable = nil) executable ||= self.executable args = executable[1..-1].map do |exp| if exp.kind_of?(Array) call(context, exp) else exp end end function = Functions.get(executable[0]) unless function raise ArgumentError, "Function #{executable[0].inspect} is missing" end function.call(context, *args) end
executable()
click to toggle source
# File lib/expressionist/expression.rb, line 18 def executable @executable ||= @parser.executable end