state_machine
https://github.com/pluginaweek/state_machine
Ruby
Adds support for creating state machines for attributes on any Ruby class
StateMachine::Event#can_fire?
Determines whether any transitions can be performed for this event based on the current state of the given object. If the event can't be fired, then this will return false, otherwise true. *Note* that this will not take the object context into account. Although a transition may be possible based on the state machine definition, object-specific behaviors (like validations) may prevent it from firing.
Edit
git clone [email protected]:pluginaweek/state_machine.git
cd state_machine
open lib/state_machine/event.rb
Contribute
# Make a new branchgit checkout -b -your-name--update-docs-StateMachine--Event-can_fire--for-pr
# Commit to gitgit add lib/state_machine/event.rbgit commit -m "better docs for StateMachine::Event#can_fire?"
# Open pull requestgem install hub # on a mac you can `brew install hub`
hub fork
git push <your name> -your-name--update-docs-StateMachine--Event-can_fire--for-pr
hub pull-request
# Celebrate!