mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-25 11:38:49 +01:00
33 lines
692 B
Text
33 lines
692 B
Text
= Acts As State Machine
|
|
|
|
This act gives an Active Record model the ability to act as a finite state
|
|
machine (FSM).
|
|
|
|
Acquire via subversion at:
|
|
|
|
http://elitists.textdriven.com/svn/plugins/acts_as_state_machine/trunk
|
|
|
|
If prompted, use the user/pass anonymous/anonymous.
|
|
|
|
== Example
|
|
|
|
class Order < ActiveRecord::Base
|
|
acts_as_state_machine :initial => :opened
|
|
|
|
state :opened
|
|
state :closed, :enter => Proc.new {|o| Mailer.send_notice(o)}
|
|
state :returned
|
|
|
|
event :close do
|
|
transitions :to => :closed, :from => :opened
|
|
end
|
|
|
|
event :return do
|
|
transitions :to => :returned, :from => :closed
|
|
end
|
|
end
|
|
|
|
o = Order.create
|
|
o.close! # notice is sent by mailer
|
|
o.return!
|
|
|