class Koine::Repository::Repository
Attributes
entity_prototype[RW]
hydrator[RW]
storage[R]
Public Class Methods
new(storage)
click to toggle source
# File lib/koine/repository/repository.rb, line 9 def initialize(storage) @storage = storage end
Public Instance Methods
find_all_by(criterias)
click to toggle source
# File lib/koine/repository/repository.rb, line 21 def find_all_by(criterias) hydrate_collection(storage.find_all_by(criterias)) end
find_one_by(criterias)
click to toggle source
# File lib/koine/repository/repository.rb, line 25 def find_one_by(criterias) raw_data = storage.find_one_by(criterias) hydrate(raw_data, new_entity) if raw_data end
find_one_by!(criterias)
click to toggle source
# File lib/koine/repository/repository.rb, line 30 def find_one_by!(criterias) find_one_by(criterias) or raise RecordNotFound end
remove(*)
click to toggle source
# File lib/koine/repository/repository.rb, line 17 def remove(*) raise "Method not implemented" end
save(*)
click to toggle source
# File lib/koine/repository/repository.rb, line 13 def save(*) raise "Method not implemented" end
Private Instance Methods
hydrate(data, entity)
click to toggle source
# File lib/koine/repository/repository.rb, line 52 def hydrate(data, entity) hydrator.hydrate(data, entity) entity end
hydrate_collection(collection)
click to toggle source
# File lib/koine/repository/repository.rb, line 44 def hydrate_collection(collection) [].tap do |hydrated| collection.each do |element| hydrated << hydrate(element, new_entity) end end end
new_entity()
click to toggle source
# File lib/koine/repository/repository.rb, line 57 def new_entity entity_prototype.dup end