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