class Datagrid::Drivers::MongoMapper

@!visibility private

Public Class Methods

match?(scope) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 6
def self.match?(scope)
  return false unless defined?(::MongoMapper)
  if scope.is_a?(Class)
    scope.ancestors.include?(::MongoMapper::Document)
  else
    scope.is_a?(::Plucky::Query)
  end
end

Public Instance Methods

asc(scope, order) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 23
def asc(scope, order)
  scope.sort(order.asc)
end
batch_each(scope, batch_size) { |item| ... } click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 60
def batch_each(scope, batch_size, &block)
  current_page = 0
  loop do
    batch = scope.skip(current_page * batch_size).limit(batch_size).to_a
    return if batch.empty?
    scope.skip(current_page * batch_size).limit(batch_size).each do |item|
      yield(item)
    end
    current_page+=1
  end
end
can_preload?(scope, association) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 80
def can_preload?(scope, association)
  false
end
column_names(scope) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 56
def column_names(scope)
  [] # TODO: implement support
end
contains(scope, field, value) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 52
def contains(scope, field, value)
  scope(field => Regexp.compile(Regexp.escape(value)))
end
default_cache_key(asset) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 72
def default_cache_key(asset)
  raise NotImplementedError
end
default_order(scope, column_name) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 31
def default_order(scope, column_name)
  has_column?(scope, column_name) ? column_name : nil
end
default_preload(scope, value) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 76
def default_preload(scope, value)
  raise NotImplementedError
end
desc(scope, order) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 27
def desc(scope, order)
  scope.sort("#{order} desc")
end
greater_equal(scope, field, value) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 35
def greater_equal(scope, field, value)
  scope.where(field => {"$gte" => value})
end
has_column?(scope, column_name) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 43
def has_column?(scope, column_name)
  scope.key?(column_name)
end
is_timestamp?(scope, column_name) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 47
def is_timestamp?(scope, column_name)
  #TODO implement the support
  false
end
less_equal(scope, field, value) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 39
def less_equal(scope, field, value)
  scope.where(field => {"$lte" => value})
end
to_scope(scope) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 15
def to_scope(scope)
  scope.where
end
where(scope, attribute, value) click to toggle source
# File lib/datagrid/drivers/mongo_mapper.rb, line 19
def where(scope, attribute, value)
  scope.where(attribute => value)
end