state_machine

https://github.com/pluginaweek/state_machine

Ruby

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

StateMachine::Integrations::DataMapper::Observer#after_transition_failure

Creates a callback that will be invoked *after* a transition failures to
be performed so long as the given requirements match the transition.

== Example

  class Vehicle
    include DataMapper::Resource
    
    property :id, Serial
    property :state, :String
    
    state_machine :initial => :parked do
      event :ignite do
        transition :parked => :idling
      end
    end
  end
  
  class VehicleObserver
    after_transition_failure do |transition|
      # log failure
    end
    
    after_transition_failure :on => :ignite do
      # log failure
    end
  end

See +before_transition+ for a description of the possible configurations
for defining callbacks.  *Note* however that you cannot define the state
requirements in these callbacks.  You may only define event requirements.

Source | Google | Stack overflow

Edit

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

cd state_machine

open lib/state_machine/integrations/data_mapper/observer.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-StateMachine--Integrations--DataMapper--Observer-after_transition_failure-for-pr


# Commit to git

git add lib/state_machine/integrations/data_mapper/observer.rbgit commit -m "better docs for StateMachine::Integrations::DataMapper::Observer#after_transition_failure"


# 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--Integrations--DataMapper--Observer-after_transition_failure-for-pr

hub pull-request


# Celebrate!