class Penumbra::Catalog

Attributes

path[R]

Public Class Methods

new(path) click to toggle source
# File lib/penumbra/catalog.rb, line 7
def initialize(path)
  @path = path
end

Public Instance Methods

[](index_name) click to toggle source
# File lib/penumbra/catalog.rb, line 11
def [](index_name)
  index_for(index_name)
end
close() click to toggle source
# File lib/penumbra/catalog.rb, line 45
def close
  raise NotOpenError unless open?
  indexes.values.map(&:close)
end
destroy() click to toggle source
# File lib/penumbra/catalog.rb, line 50
def destroy
  remove_path
end
get(index_name, key) click to toggle source
# File lib/penumbra/catalog.rb, line 28
def get(index_name, key)
  index_for(index_name).get(key)
end
index_for(index_name) click to toggle source
# File lib/penumbra/catalog.rb, line 19
def index_for(index_name)
  index_name = index_name.to_s
  indexes[index_name] ||= Index.new(File.join(path, index_name))
end
indexes() click to toggle source
# File lib/penumbra/catalog.rb, line 15
def indexes
  @indexes ||= {}
end
keys_for(index_name) click to toggle source
# File lib/penumbra/catalog.rb, line 32
def keys_for(index_name)
  index_for(index_name).keys
end
open() click to toggle source
# File lib/penumbra/catalog.rb, line 40
def open
  create_path
  @opened = true
end
put(index_name, key, value) click to toggle source
# File lib/penumbra/catalog.rb, line 24
def put(index_name, key, value)
  index_for(index_name).put(key, value)
end
values_for(index_name) click to toggle source
# File lib/penumbra/catalog.rb, line 36
def values_for(index_name)
  index_for(index_name).values
end

Private Instance Methods

create_path() click to toggle source
# File lib/penumbra/catalog.rb, line 55
def create_path
  FileUtils.mkdir_p(path)
end
open?() click to toggle source
# File lib/penumbra/catalog.rb, line 59
def open?
  @opened
end
remove_path() click to toggle source
# File lib/penumbra/catalog.rb, line 63
def remove_path
  FileUtils.rm_rf(path)
end