Class: Datagrid::Drivers::Mongoid

Inherits:
AbstractDriver show all
Defined in:
lib/datagrid/drivers/mongoid.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from AbstractDriver

guess_driver, inherited, #match?, #reverse_order

Class Method Details

.match?(scope) ⇒ Boolean

Returns:

  • (Boolean)


5
6
7
8
9
10
11
12
# File 'lib/datagrid/drivers/mongoid.rb', line 5

def self.match?(scope)
  return false unless defined?(::Mongoid)
  if scope.is_a?(Class) 
    scope.ancestors.include?(::Mongoid::Document)
  else
    scope.is_a?(::Mongoid::Criteria)
  end
end

Instance Method Details

#asc(scope, order) ⇒ Object



22
23
24
# File 'lib/datagrid/drivers/mongoid.rb', line 22

def asc(scope, order)
  scope.asc(order)
end

#default_order(scope, column_name) ⇒ Object



30
31
32
# File 'lib/datagrid/drivers/mongoid.rb', line 30

def default_order(scope, column_name)
  has_column?(scope, column_name) ? column_name : nil
end

#desc(scope, order) ⇒ Object



26
27
28
# File 'lib/datagrid/drivers/mongoid.rb', line 26

def desc(scope, order)
  scope.desc(order)
end

#greater_equal(scope, field, value) ⇒ Object



34
35
36
# File 'lib/datagrid/drivers/mongoid.rb', line 34

def greater_equal(scope, field, value)
  scope.where(field => {"$gte" => value})
end

#has_column?(scope, column_name) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/datagrid/drivers/mongoid.rb', line 42

def has_column?(scope, column_name)
  to_scope(scope).klass.fields.keys.include?(column_name.to_s)
end

#less_equal(scope, field, value) ⇒ Object



38
39
40
# File 'lib/datagrid/drivers/mongoid.rb', line 38

def less_equal(scope, field, value)
  scope.where(field => {"$lte" => value})
end

#to_scope(scope) ⇒ Object



14
15
16
# File 'lib/datagrid/drivers/mongoid.rb', line 14

def to_scope(scope)
  scope.where(nil)
end

#where(scope, attribute, value) ⇒ Object



18
19
20
# File 'lib/datagrid/drivers/mongoid.rb', line 18

def where(scope, attribute, value)
  scope.where(attribute => value)
end