Sha256: 6731ad9fe0e604d800ccaab7bc08166d0b7fd4f923f9d12047e8f1e76e860483

Contents?: true

Size: 987 Bytes

Versions: 1

Compression:

Stored size: 987 Bytes

Contents

module AASM::Persistence

  # Checks to see this class or any of it's superclasses inherit from
  # ActiveRecord::Base and if so includes ActiveRecordPersistence
  def self.set_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")
      require File.join(File.dirname(__FILE__), 'persistence', 'active_record_persistence')
      base.send(:include, AASM::Persistence::ActiveRecordPersistence)
    elsif hierarchy.include?("Mongoid::Document")
      require File.join(File.dirname(__FILE__), 'persistence', 'mongoid_persistence')
      base.send(:include, AASM::Persistence::MongoidPersistence)
    elsif hierarchy.include?("MongoMapper::Document")
      require File.join(File.dirname(__FILE__), 'persistence', 'mongo_mapper_persistence')
      base.send(:include, AASM::Persistence::MongoMapperPersistence)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
r38y-aasm-2.1.5 lib/aasm/persistence.rb