Module: JsonLogic::Trackable
- Included in:
- Evaluator
- Defined in:
- lib/json_logic/concerns/trackable.rb
Instance Attribute Summary collapse
-
#tracker ⇒ Object
readonly
Returns the value of attribute tracker.
Instance Method Summary collapse
- #commit_rule_result!(var_name, operator, data, rules, result) ⇒ Object
- #init_tracker(operator) ⇒ Object
Instance Attribute Details
#tracker ⇒ Object (readonly)
Returns the value of attribute tracker.
5 6 7 |
# File 'lib/json_logic/concerns/trackable.rb', line 5 def tracker @tracker end |
Instance Method Details
#commit_rule_result!(var_name, operator, data, rules, result) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/json_logic/concerns/trackable.rb', line 15 def commit_rule_result!(var_name, operator, data, rules, result) if COMPLEX_OPERATORS.include?(operator) # change operand to parent & save result @tracker.result = result @tracker = @tracker.parent unless @tracker.parent.nil? return result end @tracker.add_data_point(var_name, operator, rules, data, result) result end |
#init_tracker(operator) ⇒ Object
7 8 9 10 11 12 13 |
# File 'lib/json_logic/concerns/trackable.rb', line 7 def init_tracker(operator) if @tracker.nil? @tracker = Rule.new(operator) elsif COMPLEX_OPERATORS.include?(operator) @tracker = Rule.new(operator, @tracker) end end |