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.

Source | Google | Stack overflow

Edit

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

cd state_machine

open lib/state_machine/event.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-StateMachine--Event-can_fire--for-pr


# Commit to git

git add lib/state_machine/event.rbgit commit -m "better docs for StateMachine::Event#can_fire?"


# 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--Event-can_fire--for-pr

hub pull-request


# Celebrate!