Sha256: f932b748a2b1b1dbbbc3c05ea7d1bdcc7d8da3e61318680bd0fa08de543d4a8d

Contents?: true

Size: 1.35 KB

Versions: 6

Compression:

Stored size: 1.35 KB

Contents

module Ardm
  NotImplemented = Class.new(RuntimeError)

  # Check which ORM is loaded in Ardm.
  #
  # @api public
  def self.orm
    @orm ||= :active_record
  end

  # Set which orm to load.
  #
  # @api public
  def self.orm=(orm)
    if defined?(Ardm::ActiveRecord) || defined?(Ardm::DataMapper)
      raise "Cannot change Ardm.orm when #{orm} libs are already loaded."
    end

    @orm = case orm.to_s
           when /active_?record/, '' then :active_record
           when /data_?mapper/       then :data_mapper
           else raise "Unknown ENV['ORM']: #{ENV['ORM']}"
           end
  end

  # Return true if Ardm has loaded ActiveRecord ORM.
  #
  # @api public
  def self.active_record?
    orm == :active_record
  end

  # Return true if Ardm has loaded DataMapper ORM.
  #
  # @api public
  def self.data_mapper?
    orm == :data_mapper
  end

  # Yield if Ardm has loaded ActiveRecord ORM.
  #
  # @api public
  def self.active_record
    yield if block_given? && active_record?
  end

  def self.rails3?
    self.active_record? && ::ActiveRecord::VERSION::STRING >= "3.0" && ::ActiveRecord::VERSION::STRING <= "4.0"
  end

  def self.rails4?
    self.active_record? && !self.rails3?
  end

  # Yield if Ardm has loaded DataMapper ORM.
  #
  # @api public
  def self.data_mapper
    yield if block_given? && data_mapper?
  end

  def self.lib
    "ardm/#{orm}"
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ardm-0.2.5 lib/ardm.rb
ardm-0.2.4 lib/ardm.rb
ardm-0.2.3 lib/ardm.rb
ardm-0.2.2 lib/ardm.rb
ardm-0.2.1 lib/ardm.rb
ardm-0.2.0 lib/ardm.rb