state_machine

https://github.com/pluginaweek/state_machine

Ruby

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

StateMachine::State#value

The value that represents this state.  This will optionally evaluate the
original block if it's a lambda block.  Otherwise, the static value is
returned.

For example,

  State.new(machine, :parked, :value => 1).value                        # => 1
  State.new(machine, :parked, :value => lambda {Time.now}).value        # => Tue Jan 01 00:00:00 UTC 2008
  State.new(machine, :parked, :value => lambda {Time.now}).value(false) # => <Proc:0xb6ea7ca0@...>

Source | Google | Stack overflow

Edit

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

cd state_machine

open lib/state_machine/state.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-StateMachine--State-value-for-pr


# Commit to git

git add lib/state_machine/state.rbgit commit -m "better docs for StateMachine::State#value"


# 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--State-value-for-pr

hub pull-request


# Celebrate!