Class: ClosedLoop::Machine::Configuration
- Inherits:
-
Object
- Object
- ClosedLoop::Machine::Configuration
- Defined in:
- lib/closed_loop/machine/configuration.rb
Instance Attribute Summary collapse
-
#callbacks ⇒ Object
readonly
Returns the value of attribute callbacks.
-
#constraints ⇒ Object
readonly
Returns the value of attribute constraints.
-
#machine ⇒ Object
readonly
Returns the value of attribute machine.
-
#transitions ⇒ Object
readonly
Returns the value of attribute transitions.
Instance Method Summary collapse
- #callback(config, &block) ⇒ Object
- #constraint(config, &block) ⇒ Object
-
#initialize(machine) ⇒ Configuration
constructor
A new instance of Configuration.
- #select_callbacks_for(transition) ⇒ Object
- #select_constraints_for(transition) ⇒ Object
- #transition(config, &block) ⇒ Object
Constructor Details
#initialize(machine) ⇒ Configuration
6 7 8 9 10 11 |
# File 'lib/closed_loop/machine/configuration.rb', line 6 def initialize(machine) @machine = machine @transitions = [] @callbacks = [] @constraints = [] end |
Instance Attribute Details
#callbacks ⇒ Object (readonly)
Returns the value of attribute callbacks.
4 5 6 |
# File 'lib/closed_loop/machine/configuration.rb', line 4 def callbacks @callbacks end |
#constraints ⇒ Object (readonly)
Returns the value of attribute constraints.
4 5 6 |
# File 'lib/closed_loop/machine/configuration.rb', line 4 def constraints @constraints end |
#machine ⇒ Object (readonly)
Returns the value of attribute machine.
4 5 6 |
# File 'lib/closed_loop/machine/configuration.rb', line 4 def machine @machine end |
#transitions ⇒ Object (readonly)
Returns the value of attribute transitions.
4 5 6 |
# File 'lib/closed_loop/machine/configuration.rb', line 4 def transitions @transitions end |
Instance Method Details
#callback(config, &block) ⇒ Object
17 18 19 |
# File 'lib/closed_loop/machine/configuration.rb', line 17 def callback(config, &block) @callbacks << Callback.new(config.merge(machine: machine), block) end |
#constraint(config, &block) ⇒ Object
21 22 23 |
# File 'lib/closed_loop/machine/configuration.rb', line 21 def constraint(config, &block) @constraints << Constraint.new(config.merge(machine: machine), block) end |
#select_callbacks_for(transition) ⇒ Object
25 26 27 28 29 30 |
# File 'lib/closed_loop/machine/configuration.rb', line 25 def select_callbacks_for(transition) @callbacks.select do |callback| (callback.from.nil? || Array(callback.from).include?(transition.from)) && (callback.to.nil? || Array(callback.to).include?(transition.to)) end end |
#select_constraints_for(transition) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/closed_loop/machine/configuration.rb', line 32 def select_constraints_for(transition) @constraints.select do |constraint| (constraint.from.nil? || Array(constraint.from).include?(transition.from)) && (constraint.to.nil? || Array(constraint.to).include?(transition.to)) && (constraint.role == transition.role) end end |
#transition(config, &block) ⇒ Object
13 14 15 |
# File 'lib/closed_loop/machine/configuration.rb', line 13 def transition(config, &block) @transitions << Transition.new(config.merge(machine: machine), block) end |