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