module Loco::Persistable::ClassMethods
Public Instance Methods
adapter(adapter_class, *args)
click to toggle source
# File lib/motion-loco/persistable.rb, line 43 def adapter(adapter_class, *args) if adapter_class.is_a? String @adapter = adapter_class.constantize.new(*args) else @adapter = adapter_class.new(*args) end end
find(id=nil, &block)
click to toggle source
# File lib/motion-loco/persistable.rb, line 51 def find(id=nil, &block) adapter = self.get_class_adapter if id.nil? # Return all records records = RecordArray.new(item_class: self.class) adapter.find_all(self, records) do |records| block.call(records) if block.is_a? Proc end elsif id.is_a? Array # Return records with given ids records = RecordArray.new(item_class: self.class) id.each do |i| records << self.new(id: i) end adapter.find_many(self, records, id) do |records| block.call(records) if block.is_a? Proc end elsif id.is_a? Hash # Return records matching query records = RecordArray.new(item_class: self.class) adapter.find_query(self, records, id) do |records| block.call(records) if block.is_a? Proc end else record = self.new(id: id) adapter.find(record, id) do |record| block.call(record) if block.is_a? Proc end end end
get_class_adapter()
click to toggle source
# File lib/motion-loco/persistable.rb, line 84 def get_class_adapter @adapter ||= Adapter.new end