Class: Datagrid::Drivers::Array
Overview
Constant Summary
Datagrid::Drivers::AbstractDriver::TIMESTAMP_CLASSES
Class Method Summary
collapse
Instance Method Summary
collapse
-
#asc(scope, order) ⇒ Object
-
#batch_each(scope, batch_size, &block) ⇒ Object
-
#column_names(scope) ⇒ Object
-
#contains(scope, field, value) ⇒ Object
-
#default_cache_key(asset) ⇒ Object
-
#default_order(scope, column_name) ⇒ Object
-
#desc(scope, order) ⇒ Object
-
#greater_equal(scope, field, value) ⇒ Object
-
#has_column?(scope, column_name) ⇒ Boolean
-
#is_timestamp?(scope, column_name) ⇒ Boolean
-
#less_equal(scope, field, value) ⇒ Object
-
#to_scope(scope) ⇒ Object
-
#where(scope, attribute, value) ⇒ Object
#append_column_queries, guess_driver, inherited, #match?, #normalized_column_type, #reverse_order, #where_by_timestamp_gotcha
Class Method Details
.match?(scope) ⇒ 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) || scope.is_a?(Enumerator))
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
|
#batch_each(scope, batch_size, &block) ⇒ Object
68
69
70
|
# File 'lib/datagrid/drivers/array.rb', line 68
def batch_each(scope, batch_size, &block)
scope.each(&block)
end
|
#column_names(scope) ⇒ Object
64
65
66
|
# File 'lib/datagrid/drivers/array.rb', line 64
def column_names(scope)
[]
end
|
#contains(scope, field, value) ⇒ Object
58
59
60
61
62
|
# File 'lib/datagrid/drivers/array.rb', line 58
def contains(scope, field, value)
scope.select do |object|
object.send(field).to_s.include?(value)
end
end
|
#default_cache_key(asset) ⇒ Object
72
73
74
|
# File 'lib/datagrid/drivers/array.rb', line 72
def default_cache_key(asset)
asset
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
40
|
# File 'lib/datagrid/drivers/array.rb', line 35
def greater_equal(scope, field, value)
scope.select do |object|
compare_value = object.send(field)
compare_value.respond_to?(:>=) && compare_value >= value
end
end
|
#has_column?(scope, column_name) ⇒ Boolean
49
50
51
|
# File 'lib/datagrid/drivers/array.rb', line 49
def has_column?(scope, column_name)
scope.any? && scope.first.respond_to?(column_name)
end
|
#is_timestamp?(scope, column_name) ⇒ Boolean
53
54
55
56
|
# File 'lib/datagrid/drivers/array.rb', line 53
def is_timestamp?(scope, column_name)
has_column?(scope, column_name) &&
timestamp_class?(scope.first.send(column_name).class)
end
|
#less_equal(scope, field, value) ⇒ Object
42
43
44
45
46
47
|
# File 'lib/datagrid/drivers/array.rb', line 42
def less_equal(scope, field, value)
scope.select do |object|
compare_value = object.send(field)
compare_value.respond_to?(:<=) && compare_value <= 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
|