Class: Tailmix::Definition::Builders::ActionBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/tailmix/definition/builders/action_builder.rb

Instance Method Summary collapse

Constructor Details

#initializeActionBuilder

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_definitionObject



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