module Datasource::Adapters::ActiveRecord::ScopeExtensions

Public Class Methods

extended(mod) click to toggle source
# File lib/datasource/adapters/active_record.rb, line 8
def self.extended(mod)
  mod.instance_exec do
    @datasource_info ||= { select: [], params: [] }
  end
end

Public Instance Methods

datasource_get(key) click to toggle source
# File lib/datasource/adapters/active_record.rb, line 14
def datasource_get(key)
  @datasource_info[key]
end
datasource_params(*args) click to toggle source
# File lib/datasource/adapters/active_record.rb, line 28
def datasource_params(*args)
  @datasource_info[:params] += args
  self
end
datasource_select(*args) click to toggle source
# File lib/datasource/adapters/active_record.rb, line 23
def datasource_select(*args)
  @datasource_info[:select] += args
  self
end
datasource_set(hash) click to toggle source
# File lib/datasource/adapters/active_record.rb, line 18
def datasource_set(hash)
  @datasource_info.merge!(hash)
  self
end
get_datasource() click to toggle source
# File lib/datasource/adapters/active_record.rb, line 33
def get_datasource
  klass = @datasource_info[:datasource_class]
  datasource = klass.new(self)
  datasource.select(*@datasource_info[:select])
  datasource.params(*@datasource_info[:params])
  if @datasource_info[:serializer_class]
    select = []
    @datasource_info[:serializer_class].datasource_adapter.to_datasource_select(select, klass.orm_klass, @datasource_info[:serializer_class], nil, datasource.adapter, datasource)

    datasource.select(*select)
  end
  datasource
end

Private Instance Methods

exec_queries() click to toggle source
Calls superclass method
# File lib/datasource/adapters/active_record.rb, line 48
def exec_queries
  if @datasource_info[:datasource_class]
    datasource = get_datasource

    Datasource.logger.debug { "exec_queries expose_attributes: #{datasource.expose_attributes.inspect}" }
    Datasource.logger.debug { "exec_queries expose_associations: #{datasource.expose_associations.inspect}" }

    @loaded = true
    @records = datasource.results
  else
    super
  end
end