aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/models/traffic_light.rb
blob: f8cfddbef920900f95171baf739da383f14c0a3d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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