class StateMachineChecker::Adapters::StateMachines
An adapter for the state_machines gem.
Attributes
gem_machine[R]
Public Class Methods
new(gem_machine)
click to toggle source
@param [StateMachines::Machine] gem_machine
# File lib/state_machine_checker/adapters/state_machines.rb, line 8 def initialize(gem_machine) @gem_machine = gem_machine end
Public Instance Methods
initial_state()
click to toggle source
# File lib/state_machine_checker/adapters/state_machines.rb, line 12 def initial_state # StateMachines::Machine#initial_state takes an instance as a parameter, # even when the initial state is set statically. We are assuming that # it is always set statically. # TODO: could get this by `gem_machine.states.find(&:initial)` gem_machine.instance_variable_get(:@initial_state) end
transitions()
click to toggle source
# File lib/state_machine_checker/adapters/state_machines.rb, line 20 def transitions gem_machine.events.flat_map { |event| event.branches.flat_map { |branch| branch.state_requirements.flat_map { |state_requirement| froms = state_requirement[:from].values tos = state_requirement[:to].values froms.product(tos).map { |from, to| Transition.new(from, to, event.name) } } } } end