Class: Dynamican::Evaluator
- Inherits:
-
Object
- Object
- Dynamican::Evaluator
- Defined in:
- lib/dynamican/evaluator.rb
Instance Attribute Summary collapse
-
#action ⇒ Object
readonly
Returns the value of attribute action.
-
#conditions_instances ⇒ Object
readonly
Returns the value of attribute conditions_instances.
-
#item ⇒ Object
readonly
Returns the value of attribute item.
-
#item_name ⇒ Object
readonly
Returns the value of attribute item_name.
-
#subject ⇒ Object
readonly
Returns the value of attribute subject.
Instance Method Summary collapse
- #evaluate ⇒ Object
-
#initialize(subject, action, item, conditions_instances = {}) ⇒ Evaluator
constructor
A new instance of Evaluator.
Constructor Details
#initialize(subject, action, item, conditions_instances = {}) ⇒ Evaluator
Returns a new instance of Evaluator.
5 6 7 8 9 10 11 |
# File 'lib/dynamican/evaluator.rb', line 5 def initialize(subject, action, item, conditions_instances = {}) @subject = subject @action = action @item = item @item_name = calculate_item_name @conditions_instances = conditions_instances end |
Instance Attribute Details
#action ⇒ Object (readonly)
Returns the value of attribute action.
3 4 5 |
# File 'lib/dynamican/evaluator.rb', line 3 def action @action end |
#conditions_instances ⇒ Object (readonly)
Returns the value of attribute conditions_instances.
3 4 5 |
# File 'lib/dynamican/evaluator.rb', line 3 def conditions_instances @conditions_instances end |
#item ⇒ Object (readonly)
Returns the value of attribute item.
3 4 5 |
# File 'lib/dynamican/evaluator.rb', line 3 def item @item end |
#item_name ⇒ Object (readonly)
Returns the value of attribute item_name.
3 4 5 |
# File 'lib/dynamican/evaluator.rb', line 3 def item_name @item_name end |
#subject ⇒ Object (readonly)
Returns the value of attribute subject.
3 4 5 |
# File 'lib/dynamican/evaluator.rb', line 3 def subject @subject end |
Instance Method Details
#evaluate ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/dynamican/evaluator.rb', line 13 def evaluate set_instance_variables = item.present? ? subject..for_action(action).for_item(item_name) : subject..for_action(action).without_item = .conditional.map(&:conditions).flatten.map(&:statement) .unconditional.any? || .any? && .map { |statement| eval statement }.all? end |