Class: FlowEngine::Rules::All
Overview
Composite rule: logical AND of multiple sub-rules. All must be true.
Instance Attribute Summary collapse
-
#rules ⇒ Array<Base>
readonly
sub-rules to evaluate.
Instance Method Summary collapse
-
#evaluate(answers) ⇒ Boolean
True if every sub-rule evaluates to true.
-
#initialize(*rules) ⇒ All
constructor
A new instance of All.
-
#to_s ⇒ String
E.g.
Constructor Details
#initialize(*rules) ⇒ All
Returns a new instance of All.
12 13 14 15 16 |
# File 'lib/flowengine/rules/all.rb', line 12 def initialize(*rules) super() @rules = rules.flatten.freeze freeze end |
Instance Attribute Details
#rules ⇒ Array<Base> (readonly)
sub-rules to evaluate
8 9 10 |
# File 'lib/flowengine/rules/all.rb', line 8 def rules @rules end |
Instance Method Details
#evaluate(answers) ⇒ Boolean
Returns true if every sub-rule evaluates to true.
20 21 22 |
# File 'lib/flowengine/rules/all.rb', line 20 def evaluate(answers) rules.all? { |rule| rule.evaluate(answers) } end |
#to_s ⇒ String
Returns e.g. "(rule1 AND rule2 AND rule3)".
25 26 27 |
# File 'lib/flowengine/rules/all.rb', line 25 def to_s "(#{rules.join(" AND ")})" end |