Module: Loco::Savable::ClassMethods
- Defined in:
- lib/motion-loco/savable.rb
Instance Method Summary collapse
- #adapter(adapter_class, *args) ⇒ Object
- #find(id = nil, &block) ⇒ Object
- #get_class_adapter ⇒ Object
Instance Method Details
#adapter(adapter_class, *args) ⇒ Object
77 78 79 80 81 82 83 |
# File 'lib/motion-loco/savable.rb', line 77 def adapter(adapter_class, *args) if adapter_class.is_a? String @adapter = adapter_class.split('::').inject(Object) {|mod, class_name| mod.const_get(class_name) }.new(*args) else @adapter = adapter_class.new(*args) end end |
#find(id = nil, &block) ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/motion-loco/savable.rb', line 85 def find(id=nil, &block) adapter = self.get_class_adapter if id.nil? # Return all records records = RecordArray.new 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 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 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 ⇒ Object
113 114 115 |
# File 'lib/motion-loco/savable.rb', line 113 def get_class_adapter @adapter ||= Adapter.new end |