Sha256: c3a58967de0297effaddb4b63d252801c03f1a93da0a240249b301a44a1f9f23

Contents?: true

Size: 640 Bytes

Versions: 3

Compression:

Stored size: 640 Bytes

Contents

require 'micromachine'

# This example can be run with ruby -I lib/ ./examples/advanced.rb

fsm = MicroMachine.new(:pending)

fsm.when(:confirm,  :pending => :confirmed)
fsm.when(:ignore,   :pending => :ignored)
fsm.when(:reset,    :confirmed => :pending, :ignored => :pending)

puts "Should print Confirmed, Pending and Ignored:"

fsm.on(:any) do
  puts fsm.state.capitalize
end

fsm.trigger(:confirm)

fsm.trigger(:ignore)

fsm.trigger(:reset)

fsm.trigger(:ignore)

puts "Should print all states: pending, confirmed, ignored"

puts fsm.states.join ", "

puts "Should print all events: confirm, ignore, reset"

puts fsm.events.join ", "

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
micromachine-3.0.0 examples/advanced.rb
micromachine-2.1.0 examples/advanced.rb
micromachine-2.0.0 examples/advanced.rb