Class: Tailmix::Definition::Builders::ReactorBuilder
- Inherits:
-
Object
- Object
- Tailmix::Definition::Builders::ReactorBuilder
- Defined in:
- lib/tailmix/definition/builders/reactor_builder.rb
Instance Method Summary collapse
- #build_rules ⇒ Object
-
#initialize(watched_state) ⇒ ReactorBuilder
constructor
A new instance of ReactorBuilder.
-
#run(action_name, with: nil) ⇒ Object
Unconditional effect (always triggers on change).
-
#state(state_key) ⇒ Object
Alternative startup method: r.state(:zip_code).
-
#value(expected_value) ⇒ Object
Start a method for the rule chain: r.value(“commercial”).
Constructor Details
#initialize(watched_state) ⇒ ReactorBuilder
Returns a new instance of ReactorBuilder.
8 9 10 11 |
# File 'lib/tailmix/definition/builders/reactor_builder.rb', line 8 def initialize(watched_state) @watched_state = watched_state @rules = [] end |
Instance Method Details
#build_rules ⇒ Object
37 38 39 |
# File 'lib/tailmix/definition/builders/reactor_builder.rb', line 37 def build_rules @rules.map(&:build_rule) end |
#run(action_name, with: nil) ⇒ Object
Unconditional effect (always triggers on change)
29 30 31 32 33 34 35 |
# File 'lib/tailmix/definition/builders/reactor_builder.rb', line 29 def run(action_name, with: nil) # We create an "empty" rule with a condition that is always true. rule_builder = RuleBuilder.new(nil) rule_builder.instance_variable_set(:@rule, { condition: { type: :always_true } }) rule_builder.run(action_name, with: with) @rules << rule_builder end |
#state(state_key) ⇒ Object
Alternative startup method: r.state(:zip_code)
22 23 24 25 26 |
# File 'lib/tailmix/definition/builders/reactor_builder.rb', line 22 def state(state_key) rule_builder = RuleBuilder.new(state_key) @rules << rule_builder rule_builder end |
#value(expected_value) ⇒ Object
Start a method for the rule chain: r.value(“commercial”)
14 15 16 17 18 19 |
# File 'lib/tailmix/definition/builders/reactor_builder.rb', line 14 def value(expected_value) rule_builder = RuleBuilder.new(@watched_state) rule_builder.value(expected_value) @rules << rule_builder rule_builder end |