class Stateoscope::Adapter::AASM

Public Class Methods

handle?(klass, _state_machine_name) click to toggle source
# File lib/stateoscope/adapter/aasm.rb, line 4
def self.handle?(klass, _state_machine_name)
  klass.inherits_from?('::AASM')
end

Public Instance Methods

build_graph() click to toggle source
# File lib/stateoscope/adapter/aasm.rb, line 8
def build_graph
  add_initial_state
  add_states
  add_transitions
  graph.detect_final_states!
end
full_state_machine_name() click to toggle source
# File lib/stateoscope/adapter/aasm.rb, line 15
def full_state_machine_name
  [
    'aasm',
    klass.name,
    state_machine_name
  ].compact.join('-').dasherize
end

Private Instance Methods

add_initial_state() click to toggle source
# File lib/stateoscope/adapter/aasm.rb, line 29
def add_initial_state
  graph.initial_state = state_machine.initial_state.to_s
end
add_states() click to toggle source
# File lib/stateoscope/adapter/aasm.rb, line 33
def add_states
  state_machine.states.each do |state|
    graph.add_state(state.name.to_s)
  end
end
add_transitions() click to toggle source
# File lib/stateoscope/adapter/aasm.rb, line 39
def add_transitions
  state_machine.events.each do |event|
    event.transitions.each do |transition|
      graph.add_transition(transition.from.to_s, transition.to.to_s, event.name.to_s)
    end
  end
end
state_machine() click to toggle source
# File lib/stateoscope/adapter/aasm.rb, line 25
def state_machine
  klass.aasm(state_machine_name.presence)
end