Class: Datagrid::Drivers::Array

Inherits:
AbstractDriver show all
Defined in:
lib/datagrid/drivers/array.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
# File 'lib/datagrid/drivers/array.rb', line 5

def self.match?(scope)
  !Datagrid::Drivers::ActiveRecord.match?(scope) && scope.is_a?(::Array)
end

Instance Method Details

#asc(scope, order) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/datagrid/drivers/array.rb', line 19

def asc(scope, order)
  return scope unless order
  return scope if order.empty?
  scope.sort_by do |object|
    object.send(order)
  end
end

#default_order(scope, column_name) ⇒ Object



31
32
33
# File 'lib/datagrid/drivers/array.rb', line 31

def default_order(scope, column_name)
  column_name
end

#desc(scope, order) ⇒ Object



27
28
29
# File 'lib/datagrid/drivers/array.rb', line 27

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

#greater_equal(scope, field, value) ⇒ Object



35
36
37
38
39
# File 'lib/datagrid/drivers/array.rb', line 35

def greater_equal(scope, field, value)
  scope.select do |object|
    object.send(field) >= value
  end
end

#has_column?(scope, column_name) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/datagrid/drivers/array.rb', line 47

def has_column?(scope, column_name)
  scope.first.respond_to?(column_name)
end

#less_equal(scope, field, value) ⇒ Object



41
42
43
44
45
# File 'lib/datagrid/drivers/array.rb', line 41

def less_equal(scope, field, value)
  scope.select do |object|
    object.send(field) <= value
  end
end

#to_scope(scope) ⇒ Object



9
10
11
# File 'lib/datagrid/drivers/array.rb', line 9

def to_scope(scope)
  scope
end

#where(scope, attribute, value) ⇒ Object



13
14
15
16
17
# File 'lib/datagrid/drivers/array.rb', line 13

def where(scope, attribute, value)
  scope.select do |object|
    object.send(attribute) == value
  end
end