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::SequelEdit
git clone [email protected]:pluginaweek/state_machine.git
cd state_machine
open lib/state_machine/integrations.rb
Contribute
# Make a new branchgit checkout -b -your-name--update-docs-StateMachine--Integrations-match-for-pr
# Commit to gitgit add lib/state_machine/integrations.rbgit commit -m "better docs for StateMachine::Integrations.match"
# Open pull requestgem 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!