state_machine

https://github.com/pluginaweek/state_machine

Ruby

Adds support for creating state machines for attributes on any Ruby class

StateMachine::Transition#attributes

A hash of all the core attributes defined for this transition with their
names as keys and values of the attributes as values.

== Example

  machine = StateMachine.new(Vehicle)
  transition = StateMachine::Transition.new(Vehicle.new, machine, :ignite, :parked, :idling)
  transition.attributes   # => {:object => #<Vehicle:0xb7d60ea4>, :attribute => :state, :event => :ignite, :from => 'parked', :to => 'idling'}

Source | Google | Stack overflow

Edit

git clone [email protected]:pluginaweek/state_machine.git

cd state_machine

open lib/state_machine/transition.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-StateMachine--Transition-attributes-for-pr


# Commit to git

git add lib/state_machine/transition.rbgit commit -m "better docs for StateMachine::Transition#attributes"


# Open pull request

gem install hub # on a mac you can `brew install hub`

hub fork

git push <your name> -your-name--update-docs-StateMachine--Transition-attributes-for-pr

hub pull-request


# Celebrate!