class Hikki::Repository
Attributes
readers[R]
writers[R]
Public Class Methods
new(writers=[], readers=[])
click to toggle source
# File lib/hikki/repository.rb, line 6 def initialize(writers=[], readers=[]) @writers = Array(writers) @writers << Hikki::Adapters::MemoryAdapter.new if @writers.empty? @readers = Array(readers) @readers << @writers.first if @readers.empty? end
Public Instance Methods
all(collection, options={})
click to toggle source
# File lib/hikki/repository.rb, line 38 def all(collection, options={}) readers.each do |reader| result = reader.all(collection, options) return result unless result == [] end [] end
find(collection, id)
click to toggle source
# File lib/hikki/repository.rb, line 30 def find(collection, id) readers.each do |reader| result = reader.find(collection, id) return result unless result == {} end {} end
find_by(collection, field, value, options={})
click to toggle source
# File lib/hikki/repository.rb, line 46 def find_by(collection, field, value, options={}) readers.each do |reader| result = reader.find_by(collection, field, value, options) return result unless result == [] end [] end
index(collection, field)
click to toggle source
# File lib/hikki/repository.rb, line 18 def index(collection, field) writers.all? { |writer| writer.index(collection, field) } end
remove(collection, field)
click to toggle source
# File lib/hikki/repository.rb, line 22 def remove(collection, field) writers.all? { |writer| writer.remove(collection, field) } end
remove_all(collection)
click to toggle source
# File lib/hikki/repository.rb, line 26 def remove_all(collection) writers.all? { |writer| writer.remove_all(collection) } end
save(collection, data)
click to toggle source
# File lib/hikki/repository.rb, line 13 def save(collection, data) head, *tail = *writers tail.reduce(head.save(collection, data)) { |result, writer| writer.save(collection, result) } end