class Datagrid::Drivers::Array

@!visibility private

Public Class Methods

match?(scope) click to toggle source
# File lib/datagrid/drivers/array.rb, line 6
def self.match?(scope)
  !Datagrid::Drivers::ActiveRecord.match?(scope) && (
    scope.is_a?(::Array) || scope.is_a?(Enumerator) ||
    (defined?(::ActiveRecord::Result) && scope.is_a?(::ActiveRecord::Result))
  )
end

Public Instance Methods

asc(scope, order) click to toggle source
# File lib/datagrid/drivers/array.rb, line 23
def asc(scope, order)
  return scope unless order
  return scope if order.empty?
  scope.sort_by do |object|
    object.public_send(order)
  end
end
batch_each(scope, batch_size, &block) click to toggle source
# File lib/datagrid/drivers/array.rb, line 74
def batch_each(scope, batch_size, &block)
  scope.each(&block)
end
can_preload?(scope, association) click to toggle source
# File lib/datagrid/drivers/array.rb, line 82
def can_preload?(scope, association)
  false
end
column_names(scope) click to toggle source
# File lib/datagrid/drivers/array.rb, line 70
def column_names(scope)
  []
end
contains(scope, field, value) click to toggle source
# File lib/datagrid/drivers/array.rb, line 64
def contains(scope, field, value)
  scope.select do |object|
    object.public_send(field).to_s.include?(value)
  end
end
default_cache_key(asset) click to toggle source
# File lib/datagrid/drivers/array.rb, line 78
def default_cache_key(asset)
  asset
end
default_order(scope, column_name) click to toggle source
# File lib/datagrid/drivers/array.rb, line 35
def default_order(scope, column_name)
  column_name
end
desc(scope, order) click to toggle source
# File lib/datagrid/drivers/array.rb, line 31
def desc(scope, order)
  asc(scope, order).reverse
end
greater_equal(scope, field, value) click to toggle source
# File lib/datagrid/drivers/array.rb, line 43
def greater_equal(scope, field, value)
  scope.select do |object|
    object.public_send(field) >= value
  end
end
has_column?(scope, column_name) click to toggle source
# File lib/datagrid/drivers/array.rb, line 55
def has_column?(scope, column_name)
  scope.any? && scope.first.respond_to?(column_name)
end
is_timestamp?(scope, column_name) click to toggle source
# File lib/datagrid/drivers/array.rb, line 59
def is_timestamp?(scope, column_name)
  has_column?(scope, column_name) &&
    timestamp_class?(scope.first.public_send(column_name).class)
end
less_equal(scope, field, value) click to toggle source
# File lib/datagrid/drivers/array.rb, line 49
def less_equal(scope, field, value)
  scope.select do |object|
    object.public_send(field) <= value
  end
end
reverse_order(scope) click to toggle source
# File lib/datagrid/drivers/array.rb, line 39
def reverse_order(scope)
  scope.reverse
end
to_scope(scope) click to toggle source
# File lib/datagrid/drivers/array.rb, line 13
def to_scope(scope)
  scope
end
where(scope, attribute, value) click to toggle source
# File lib/datagrid/drivers/array.rb, line 17
def where(scope, attribute, value)
  scope.select do |object|
    object.public_send(attribute) == value
  end
end