Class: Tailmix::Definition::Builders::ActionBuilder
- Inherits:
-
Object
- Object
- Tailmix::Definition::Builders::ActionBuilder
- Defined in:
- lib/tailmix/definition/builders/action_builder.rb
Instance Method Summary collapse
- #build_definition ⇒ Object
- #dispatch(event_name, detail: {}) ⇒ Object
-
#initialize ⇒ ActionBuilder
constructor
A new instance of ActionBuilder.
- #refresh(state_key, params: {}) ⇒ Object
- #set(state_key, value) ⇒ Object
- #toggle(state_key) ⇒ Object
Constructor Details
#initialize ⇒ ActionBuilder
Returns a new instance of ActionBuilder.
8 9 10 |
# File 'lib/tailmix/definition/builders/action_builder.rb', line 8 def initialize @transitions = [] end |
Instance Method Details
#build_definition ⇒ Object
33 34 35 |
# File 'lib/tailmix/definition/builders/action_builder.rb', line 33 def build_definition Result::Action.new(transitions: @transitions.freeze) end |
#dispatch(event_name, detail: {}) ⇒ Object
29 30 31 |
# File 'lib/tailmix/definition/builders/action_builder.rb', line 29 def dispatch(event_name, detail: {}) @transitions << { type: :dispatch, payload: { name: event_name, detail: detail } } end |
#refresh(state_key, params: {}) ⇒ Object
25 26 27 |
# File 'lib/tailmix/definition/builders/action_builder.rb', line 25 def refresh(state_key, params: {}) @transitions << { type: :refresh, payload: { key: state_key.to_sym, params: params } } end |
#set(state_key, value) ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'lib/tailmix/definition/builders/action_builder.rb', line 12 def set(state_key, value) processed_value = if value.is_a?(PayloadValue) { __type: 'payload_value', key: value.key } else value end @transitions << { type: :set, payload: { key: state_key.to_sym, value: processed_value } } end |
#toggle(state_key) ⇒ Object
21 22 23 |
# File 'lib/tailmix/definition/builders/action_builder.rb', line 21 def toggle(state_key) @transitions << { type: :toggle, payload: { key: state_key.to_sym } } end |