Module: AASM::Persistence

Defined in:
lib/aasm/persistence.rb,
lib/aasm/persistence/base.rb,
lib/aasm/persistence/plain_persistence.rb,
lib/aasm/persistence/sequel_persistence.rb,
lib/aasm/persistence/mongoid_persistence.rb,
lib/aasm/persistence/mongo_mapper_persistence.rb,
lib/aasm/persistence/active_record_persistence.rb

Defined Under Namespace

Modules: ActiveRecordPersistence, Base, MongoMapperPersistence, MongoidPersistence, PlainPersistence, SequelPersistence

Class Method Summary collapse

Class Method Details

.load_persistence(base) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/aasm/persistence.rb', line 5

def load_persistence(base)
  # Use a fancier auto-loading thingy, perhaps.  When there are more persistence engines.
  hierarchy = base.ancestors.map {|klass| klass.to_s}

  if hierarchy.include?("ActiveRecord::Base")
    include_persistence base, :active_record
  elsif hierarchy.include?("Mongoid::Document")
    include_persistence base, :mongoid
  elsif hierarchy.include?("MongoMapper::Document")
    include_persistence base, :mongo_mapper
  elsif hierarchy.include?("Sequel::Model")
    include_persistence base, :sequel
  else
    include_persistence base, :plain
  end
end