class Cuprum::Rails::Query

Interface for performing query operations on a Rails collection.

Attributes

native_query[R]
record_class[R]

@return [Class] the class of the collection items.

Public Class Methods

new(record_class, native_query: nil) click to toggle source

@param record_class [Class] The class of the collection items. Must be a

subclass of ActiveRecord::Base.

@param native_query [ActiveRecord::Relation] A relation used to scope the

query.
Calls superclass method
# File lib/cuprum/rails/query.rb, line 23
def initialize(record_class, native_query: nil)
  super()

  default_order = { record_class.primary_key => :asc }
  @native_query = native_query || record_class.all.order(default_order)
  @record_class = record_class
  @limit        = nil
  @offset       = nil
  @order        = default_order
end

Protected Instance Methods

query_builder() click to toggle source
# File lib/cuprum/rails/query.rb, line 39
def query_builder
  Cuprum::Rails::QueryBuilder.new(self)
end
reset!() click to toggle source
# File lib/cuprum/rails/query.rb, line 43
def reset!
  @native_query.reset

  self
end
with_limit(count) click to toggle source
Calls superclass method
# File lib/cuprum/rails/query.rb, line 49
def with_limit(count)
  @native_query = @native_query.limit(count)

  super
end
with_native_query(native_query) click to toggle source
# File lib/cuprum/rails/query.rb, line 55
def with_native_query(native_query)
  @native_query = native_query

  self
end
with_offset(count) click to toggle source
Calls superclass method
# File lib/cuprum/rails/query.rb, line 61
def with_offset(count)
  @native_query = @native_query.offset(count)

  super
end
with_order(order) click to toggle source
Calls superclass method
# File lib/cuprum/rails/query.rb, line 67
def with_order(order)
  @native_query = @native_query.reorder(order)

  super
end