class Datagrid::Drivers::AbstractDriver

@!visibility private

Constants

TIMESTAMP_CLASSES

Public Class Methods

guess_driver(scope) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 15
def self.guess_driver(scope)
  self.subclasses.find do |driver_class|
    driver_class.match?(scope)
  end || raise(Datagrid::ConfigurationError, "ORM Driver not found for scope: #{scope.inspect}.")
end
inherited(base) click to toggle source
Calls superclass method
# File lib/datagrid/drivers/abstract_driver.rb, line 10
def self.inherited(base)
  super(base)
  self.subclasses << base
end
match?(scope) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 21
def self.match?(scope)
  raise NotImplementedError
end

Public Instance Methods

append_column_queries(assets, columns) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 85
def append_column_queries(assets, columns)
  if columns.present?
    raise NotImplementedError
  else
    assets
  end
end
asc(scope, order) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 37
def asc(scope, order)
  raise NotImplementedError
end
batch_each(scope, batch_size, &block) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 81
def batch_each(scope, batch_size, &block)
  raise NotImplementedError
end
can_preload?(scope, association) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 112
def can_preload?(scope, association)
  raise NotImplementedError
end
column_names(scope) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 73
def column_names(scope)
  raise NotImplementedError
end
contains(scope, field, value) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 69
def contains(scope, field, value)
  raise NotImplementedError
end
default_cache_key(asset) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 93
def default_cache_key(asset)
  raise NotImplementedError
end
default_order(scope, column_name) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 45
def default_order(scope, column_name)
  raise NotImplementedError
end
default_preload(scope, value) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 108
def default_preload(scope, value)
  raise NotImplementedError
end
desc(scope, order) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 41
def desc(scope, order)
  raise NotImplementedError
end
greater_equal(scope, field, value) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 49
def greater_equal(scope, field, value)
  raise NotImplementedError
end
has_column?(scope, column_name) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 57
def has_column?(scope, column_name)
  raise NotImplementedError
end
is_timestamp?(scope, field) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 65
def is_timestamp?(scope, field)
  normalized_column_type(scope, field) == :timestamp
end
less_equal(scope, field, value) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 53
def less_equal(scope, field, value)
  raise NotImplementedError
end
match?(scope) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 25
def match?(scope)
  self.class.match?(scope)
end
normalized_column_type(scope, field) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 77
def normalized_column_type(scope, field)
  raise NotImplementedError
end
reverse_order(scope) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 61
def reverse_order(scope)
  raise NotImplementedError
end
to_scope(scope) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 29
def to_scope(scope)
  raise NotImplementedError
end
where(scope, attribute, value) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 33
def where(scope, attribute, value)
  raise NotImplementedError
end
where_by_timestamp_gotcha(scope, name, value) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 97
def where_by_timestamp_gotcha(scope, name, value)
  value = Datagrid::Utils.format_date_as_timestamp(value)
  if value.first
    scope = greater_equal(scope, name, value.first)
  end
  if value.last
    scope = less_equal(scope, name, value.last)
  end
  scope
end

Protected Instance Methods

timestamp_class?(klass) click to toggle source
# File lib/datagrid/drivers/abstract_driver.rb, line 117
def timestamp_class?(klass)
  TIMESTAMP_CLASSES.include?(klass)
end