28 lines
495 B
Ruby
28 lines
495 B
Ruby
class TrafficLight < ActiveRecord::Base
|
|
include ActiveRecord::StateMachine
|
|
|
|
state_machine do
|
|
state :off
|
|
|
|
state :red
|
|
state :green
|
|
state :yellow
|
|
|
|
event :red_on do
|
|
transitions :to => :red, :from => [:yellow]
|
|
end
|
|
|
|
event :green_on do
|
|
transitions :to => :green, :from => [:red]
|
|
end
|
|
|
|
event :yellow_on do
|
|
transitions :to => :yellow, :from => [:green]
|
|
end
|
|
|
|
event :reset do
|
|
transitions :to => :red, :from => [:off]
|
|
end
|
|
end
|
|
end
|