class MR::Query

Attributes

model_class[R]
relation[R]

Public Class Methods

new(model_class, relation) click to toggle source
# File lib/mr/query.rb, line 9
def initialize(model_class, relation)
  @model_class = model_class
  @relation    = relation
end

Public Instance Methods

count() click to toggle source
# File lib/mr/query.rb, line 32
def count
  @count ||= self.count!
end
count!() click to toggle source
# File lib/mr/query.rb, line 36
def count!
  @count = count_relation.count
end
first() click to toggle source
# File lib/mr/query.rb, line 22
def first
  @first ||= self.first!
end
first!() click to toggle source
# File lib/mr/query.rb, line 26
def first!
  @first = if (record = self.relation.first)
    self.model_class.new(record)
  end
end
paged(page_num = nil, page_size = nil) click to toggle source
# File lib/mr/query.rb, line 40
def paged(page_num = nil, page_size = nil)
  PagedQuery.new(self, page_num, page_size)
end
results() click to toggle source
# File lib/mr/query.rb, line 14
def results
  @results ||= self.results!
end
results!() click to toggle source
# File lib/mr/query.rb, line 18
def results!
  @results = self.relation.all.map{ |record| self.model_class.new(record) }
end

Private Instance Methods

count_relation() click to toggle source
# File lib/mr/query.rb, line 46
def count_relation
  @count_relation ||= CountRelation.new(self.relation)
end