Module: YADM::Repository::ClassMethods
- Includes:
- Enumerable
- Defined in:
- lib/yadm/repository.rb
Instance Method Summary collapse
- #count ⇒ Object
- #default_query ⇒ Object
- #delete(entity) ⇒ Object
- #each(&block) ⇒ Object
- #find(id) ⇒ Object
- #persist(entity) ⇒ Object
- #send_query(query) ⇒ Object
Instance Method Details
#count ⇒ Object
45 46 47 |
# File 'lib/yadm/repository.rb', line 45 def count mapping.count end |
#default_query ⇒ Object
55 56 57 |
# File 'lib/yadm/repository.rb', line 55 def default_query query_class.new end |
#delete(entity) ⇒ Object
37 38 39 |
# File 'lib/yadm/repository.rb', line 37 def delete(entity) mapping.remove(entity.id) end |
#each(&block) ⇒ Object
41 42 43 |
# File 'lib/yadm/repository.rb', line 41 def each(&block) default_query.each(&block) end |
#find(id) ⇒ Object
24 25 26 |
# File 'lib/yadm/repository.rb', line 24 def find(id) wrap_object(mapping.get(id)) end |
#persist(entity) ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/yadm/repository.rb', line 28 def persist(entity) if entity.id.nil? entity.id = mapping.add(entity.attributes) else new_attributes = entity.attributes mapping.change(new_attributes.delete(:id), new_attributes) end end |
#send_query(query) ⇒ Object
49 50 51 52 53 |
# File 'lib/yadm/repository.rb', line 49 def send_query(query) mapping.send_query(query).map do |attributes| wrap_object(attributes) end end |