module NoBrainer::Criteria::First

Public Instance Methods

first() click to toggle source
# File lib/no_brainer/criteria/first.rb, line 4
def first
  get_one(self)
end
first!() click to toggle source
# File lib/no_brainer/criteria/first.rb, line 12
def first!
  first || (raise NoBrainer::Error::DocumentNotFound)
end
last() click to toggle source
# File lib/no_brainer/criteria/first.rb, line 8
def last
  get_one(self.reverse_order)
end
last!() click to toggle source
# File lib/no_brainer/criteria/first.rb, line 16
def last!
  last || (raise NoBrainer::Error::DocumentNotFound)
end
sample(n=nil) click to toggle source
# File lib/no_brainer/criteria/first.rb, line 20
def sample(n=nil)
  result = run { self.without_ordering.to_rql.sample(n.nil? ? 1 : n) }
  result = result.map(&method(:instantiate_doc))
  n.nil? ? result.first : result
end

Private Instance Methods

get_one(criteria) click to toggle source
# File lib/no_brainer/criteria/first.rb, line 28
def get_one(criteria)
  instantiate_doc(criteria.limit(1).__send__(:run).first)
end