Sha256: f385fefcaf396732bc22b559bebd8cd11d0cb70ed52d80e33e2d635cf0af2f25

Contents?: true

Size: 746 Bytes

Versions: 14

Compression:

Stored size: 746 Bytes

Contents

require 'state_machine'

class Vehicle
  state_machine :initial => :parked do
    event :park do
      transition [:idling, :first_gear] => :parked
    end
    
    event :ignite do
      transition :stalled => same, :parked => :idling
    end
    
    event :idle do
      transition :first_gear => :idling
    end
    
    event :shift_up do
      transition :idling => :first_gear, :first_gear => :second_gear, :second_gear => :third_gear
    end
    
    event :shift_down do
      transition :third_gear => :second_gear, :second_gear => :first_gear
    end
    
    event :crash do
      transition [:first_gear, :second_gear, :third_gear] => :stalled
    end
    
    event :repair do
      transition :stalled => :parked
    end
  end
end

Version data entries

14 entries across 14 versions & 9 rubygems

Version Path
state_machine_updated_for_ruby_3_2-2.0.0 examples/vehicle.rb
telvue_state_machine-1.2.3 examples/vehicle.rb
telvue_state_machine-1.2.2 examples/vehicle.rb
state_machine_deuxito-0.0.1 examples/vehicle.rb
telvue_state_machine-1.2.1 examples/vehicle.rb
cm-state_machine-1.2.0.1 examples/vehicle.rb
spree-state_machine-2.0.0.beta4 examples/vehicle.rb
spree-state_machine-2.0.0.beta3 examples/vehicle.rb
spree-state_machine-2.0.0.beta2 examples/vehicle.rb
spree-state_machine-2.0.0.beta1 examples/vehicle.rb
culturecode-state_machine-1.2.1 examples/vehicle.rb
automat-1.2.0 examples/vehicle.rb
glebtv_state_machine-1.3.0 examples/vehicle.rb
state_machine-1.2.0 examples/vehicle.rb