state_machine

https://github.com/pluginaweek/state_machine

Ruby

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

StateMachine::Callback#terminator

An optional block for determining whether to cancel the callback chain
based on the return value of the callback.  By default, the callback
chain never cancels based on the return value (i.e. there is no implicit
terminator).  Certain integrations, such as ActiveRecord and Sequel,
change this default value.

== Examples

Canceling the callback chain without a terminator:

  class Vehicle
    state_machine do
      before_transition do |vehicle|
        throw :halt
      end
    end
  end

Canceling the callback chain with a terminator value of +false+:

  class Vehicle
    state_machine do
      before_transition do |vehicle|
        false
      end
    end
  end

Source | Google | Stack overflow

Edit

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

cd state_machine

open lib/state_machine/callback.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-StateMachine--Callback-terminator-for-pr


# Commit to git

git add lib/state_machine/callback.rbgit commit -m "better docs for StateMachine::Callback#terminator"


# 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--Callback-terminator-for-pr

hub pull-request


# Celebrate!