Class: JsonExpr

Inherits:
Object
  • Object
show all
Defined in:
lib/json_expr/json_expr.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeJsonExpr

Returns a new instance of JsonExpr.



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/json_expr/json_expr.rb', line 25

def initialize
  @operators = {
    "and": AndCombinator.new,
    "or": OrCombinator.new,
    "value": ValueOperator.new,
    "var": VarOperator.new,
    "null": NilOperator.new,
    "not": NotOperator.new,
    "in": InOperator.new,
    "match": MatchOperator.new,
    "eq": EqualsOperator.new,
    "gt": GreaterThanOperator.new,
    "gte": GreaterThanOrEqualOperator.new,
    "lt": LessThanOperator.new,
    "lte": LessThanOrEqualOperator.new
  }
end

Instance Attribute Details

#operatorsObject

Returns the value of attribute operators.



22
23
24
# File 'lib/json_expr/json_expr.rb', line 22

def operators
  @operators
end

#varsObject

Returns the value of attribute vars.



23
24
25
# File 'lib/json_expr/json_expr.rb', line 23

def vars
  @vars
end

Instance Method Details

#evaluate_boolean_expr(expr, vars) ⇒ Object



43
44
45
46
# File 'lib/json_expr/json_expr.rb', line 43

def evaluate_boolean_expr(expr, vars)
  evaluator = ExprEvaluator.new(operators, vars)
  evaluator.boolean_convert(evaluator.evaluate(expr))
end

#evaluate_expr(expr, vars) ⇒ Object



48
49
50
51
# File 'lib/json_expr/json_expr.rb', line 48

def evaluate_expr(expr, vars)
  evaluator = ExprEvaluator.new(operators, vars)
  evaluator.evaluate(expr)
end