Method: ActiveMapper::Adapter::Memory#where

Defined in:
lib/active_mapper/adapter/memory.rb

#where(klass, options = {}, &block) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/active_mapper/adapter/memory.rb', line 15

def where(klass, options = {}, &block)
  query = Query.new(&block)
  order = Order.new(&options[:order])

  records = collection(klass).values.select(&query.to_proc)
  records = records.sort(&order.to_proc)
  records = records.drop(options[:offset]) if options[:offset]
  records = records.take(options[:limit]) if options[:limit]

  records
end