Class: Rules::Evaluators::Evaluator
- Inherits:
-
Object
- Object
- Rules::Evaluators::Evaluator
- Defined in:
- lib/rules/evaluators/evaluator.rb
Instance Attribute Summary collapse
-
#evaluation_method ⇒ Object
Returns the value of attribute evaluation_method.
-
#name ⇒ Object
Returns the value of attribute name.
-
#requires_rhs ⇒ Object
Returns the value of attribute requires_rhs.
-
#type_for_rhs ⇒ Object
Returns the value of attribute type_for_rhs.
Instance Method Summary collapse
- #evaluate(lhs, rhs = nil) ⇒ Object
-
#initialize(key) ⇒ Evaluator
constructor
A new instance of Evaluator.
- #requires_rhs? ⇒ Boolean
- #to_s ⇒ Object
Constructor Details
#initialize(key) ⇒ Evaluator
Returns a new instance of Evaluator.
6 7 8 9 |
# File 'lib/rules/evaluators/evaluator.rb', line 6 def initialize(key) @name = key.to_s @requires_rhs = true end |
Instance Attribute Details
#evaluation_method ⇒ Object
Returns the value of attribute evaluation_method.
4 5 6 |
# File 'lib/rules/evaluators/evaluator.rb', line 4 def evaluation_method @evaluation_method end |
#name ⇒ Object
Returns the value of attribute name.
4 5 6 |
# File 'lib/rules/evaluators/evaluator.rb', line 4 def name @name end |
#requires_rhs ⇒ Object
Returns the value of attribute requires_rhs.
4 5 6 |
# File 'lib/rules/evaluators/evaluator.rb', line 4 def requires_rhs @requires_rhs end |
#type_for_rhs ⇒ Object
Returns the value of attribute type_for_rhs.
4 5 6 |
# File 'lib/rules/evaluators/evaluator.rb', line 4 def type_for_rhs @type_for_rhs end |
Instance Method Details
#evaluate(lhs, rhs = nil) ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/rules/evaluators/evaluator.rb', line 11 def evaluate(lhs, rhs = nil) raise 'Unknown evaluation method' unless evaluation_method begin requires_rhs? ? evaluation_method.call(lhs, rhs) : evaluation_method.call(lhs) rescue StandardError => ex return false if Rules.config.errors_are_false? raise ex end end |
#requires_rhs? ⇒ Boolean
22 23 24 |
# File 'lib/rules/evaluators/evaluator.rb', line 22 def requires_rhs? @requires_rhs end |
#to_s ⇒ Object
26 27 28 |
# File 'lib/rules/evaluators/evaluator.rb', line 26 def to_s @name end |