mm-transitions

A simple MongoMapper plugin to add the Transitions State Machine to your documents

Usage

Install the gem

gem install mm-transitions

Or add it to your Gemfile

gem 'mm-transitions'

Then add the mm-transitions plugin to you MongoMapper::Document

class User
  include MongoMapper::Document
  plugin MongoMapper::Plugins::Transitions

  state_machine do
    state :pending
    state :active

    event :activate do
      transitions :to => :active, :from => [:pending]
    end

  end
end

user = User.create
user.current_state => :pending

user.activate
user.current_state => :active
user.reload
user.current_state => :pending

user.activate!
user.current_state => :active
user.reload
user.current_state => :active

More Info

for more information check out: ** [the specs](github.com/icaruswings/mm-transitions/blob/master/spec/mm-transitions_spec.rb) ** [the transitions gem](github.com/qoobaa/transitions)

Contributing to mm-transitions

Copyright © 2011 Luke Cunningham. See LICENSE.txt for further details.