state_machine

https://github.com/pluginaweek/state_machine

Ruby

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

StateMachine::Integrations.match

Attempts to find an integration that matches the given class.  This will
look through all of the built-in integrations under the StateMachine::Integrations
namespace and find one that successfully matches the class.

== Examples

  class Vehicle
  end
  
  class ActiveModelVehicle
    include ActiveModel::Observing
    include ActiveModel::Validations
  end
  
  class ActiveRecordVehicle < ActiveRecord::Base
  end
  
  class DataMapperVehicle
    include DataMapper::Resource
  end
  
  class MongoidVehicle
    include Mongoid::Document
  end
  
  class MongoMapperVehicle
    include MongoMapper::Document
  end
  
  class SequelVehicle < Sequel::Model
  end
  
  StateMachine::Integrations.match(Vehicle)             # => nil
  StateMachine::Integrations.match(ActiveModelVehicle)  # => StateMachine::Integrations::ActiveModel
  StateMachine::Integrations.match(ActiveRecordVehicle) # => StateMachine::Integrations::ActiveRecord
  StateMachine::Integrations.match(DataMapperVehicle)   # => StateMachine::Integrations::DataMapper
  StateMachine::Integrations.match(MongoidVehicle)      # => StateMachine::Integrations::Mongoid
  StateMachine::Integrations.match(MongoMapperVehicle)  # => StateMachine::Integrations::MongoMapper
  StateMachine::Integrations.match(SequelVehicle)       # => StateMachine::Integrations::Sequel

Source | Google | Stack overflow

Edit

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

cd state_machine

open lib/state_machine/integrations.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-StateMachine--Integrations-match-for-pr


# Commit to git

git add lib/state_machine/integrations.rbgit commit -m "better docs for StateMachine::Integrations.match"


# 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-match-for-pr

hub pull-request


# Celebrate!