class Eternity::CollectionIndex

Attributes

index[R]

Public Class Methods

new(options) click to toggle source
# File lib/eternity/collection_index.rb, line 7
def initialize(options)
  @index = Restruct::Hash.new options
end

Public Instance Methods

[](id) click to toggle source
# File lib/eternity/collection_index.rb, line 19
def [](id)
  include?(id) ? Blob.new(:data, index[id]) : nil
end
collection_name() click to toggle source
# File lib/eternity/collection_index.rb, line 11
def collection_name
  index.id.sections.last
end
delete(id) click to toggle source
# File lib/eternity/collection_index.rb, line 33
def delete(id)
  raise "#{collection_name.capitalize} #{id} not found" unless index.key? id
  index.delete id
end
ids() click to toggle source
# File lib/eternity/collection_index.rb, line 38
def ids
  index.keys
end
include?(id) click to toggle source
# File lib/eternity/collection_index.rb, line 15
def include?(id)
  index.key? id
end
insert(id, data) click to toggle source
# File lib/eternity/collection_index.rb, line 23
def insert(id, data)
  raise "#{collection_name.capitalize} #{id} already exists" if index.key? id
  index[id] = Blob.write :data, data
end
update(id, data) click to toggle source
# File lib/eternity/collection_index.rb, line 28
def update(id, data)
  raise "#{collection_name.capitalize} #{id} not found" unless index.key? id
  index[id] = Blob.write :data, data
end