Sha256: cb37330b6801ce1e62a859966654dd888f0b4c0964be58742ec89a369abf6f59

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 KB

Contents

= transitions

The gem is based on Rick Olson's code of ActiveModel::StateMachine,
axed from ActiveModel in {this
commit}[http://github.com/rails/rails/commit/db49c706b62e7ea2ab93f05399dbfddf5087ee0c].

== 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

Copyright (c) 2010 Jakub Kuźma. See LICENSE for details.

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
transitions-0.0.8 README.rdoc
transitions-0.0.7 README.rdoc