Module: Hari::Node::Repository::ClassMethods
- Defined in:
- lib/hari/node/repository.rb
Instance Method Summary collapse
- #find_by(name, value) ⇒ Object
- #find_many(ids, options = {}) ⇒ Object
- #find_one(id, options = {}) ⇒ Object
- #where(conditions = {}) ⇒ Object
Instance Method Details
#find_by(name, value) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/hari/node/repository.rb', line 42 def find_by(name, value) if property = indexed_properties.find { |p| p.name.to_s == name.to_s } Index.new property, value else fail "missing index for key #{name}" end end |
#find_many(ids, options = {}) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/hari/node/repository.rb', line 34 def find_many(ids, = {}) ids = ids.map do |id| id.to_s.include?('#') ? id : "#{node_type}##{id}" end super ids, end |
#find_one(id, options = {}) ⇒ Object
29 30 31 32 |
# File 'lib/hari/node/repository.rb', line 29 def find_one(id, = {}) id = "#{node_type}##{id}" unless id.to_s.include?('#') super id, end |
#where(conditions = {}) ⇒ Object
50 51 52 53 54 55 |
# File 'lib/hari/node/repository.rb', line 50 def where(conditions = {}) conditions.inject(nil) do |index, (key, value)| query = find_by(key, value) index ? index.append(query) : query end end |