module DataMapper::Adapters

Public Class Methods

aggregate_module(const_name) click to toggle source
# File lib/dm-aggregates.rb, line 35
def self.aggregate_module(const_name)
  Aggregates.const_get(const_name)
end
include_aggregate_api(const_name) click to toggle source
# File lib/dm-aggregates.rb, line 24
def self.include_aggregate_api(const_name)
  require aggregate_extensions(const_name)
  if Aggregates.const_defined?(const_name)
    adapter = const_get(const_name)
    adapter.send(:include, aggregate_module(const_name))
  end
rescue LoadError
  # Silently ignore the fact that no adapter extensions could be required
  # This means that the adapter in use doesn't support aggregates
end

Private Class Methods

aggregate_extensions(const_name) click to toggle source

@api private

# File lib/dm-aggregates.rb, line 42
def aggregate_extensions(const_name)
  name = adapter_name(const_name)
  name = 'do' if name == 'dataobjects'
  "dm-aggregates/adapters/dm-#{name}-adapter"
end

Public Instance Methods

const_added(const_name) click to toggle source

@api private

Calls superclass method
# File lib/dm-aggregates.rb, line 51
def const_added(const_name)
  include_aggregate_api(const_name)
  super
end