Skip to content

netizer/transitions

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

transitions

The gem is based on Rick Olson’s code of ActiveModel::StateMachine, axed from ActiveModel in this commit.

Installation

If you’re using Rails + ActiveRecord + Bundler

# in your Gemfile
gem "transitions", :require => ["transitions", "active_record/transitions"]

# in your AR models that will use the state machine
include ::Transitions
include ActiveRecord::Transitions

state_machine do
  state :available # first one is initial state
  state :out_of_stock
  state :discontinue

  event :discontinue do
    transitions :to => :discontinue, :from => [:available, :out_of_stock], :on_transition => :do_discontinue
  end
  event :out_of_stock do
    transitions :to => :out_of_stock, :from => [:available, :discontinue]
  end
  event :available do
    transitions :to => :available, :from => [:out_of_stock], :on_transition => :send_alerts
  end
end

Copyright © 2010 Jakub Kuźma. See LICENSE for details.

About

State machine extracted from ActiveModel

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%