class Yoda::Store::Adapters::LeveldbAdapter

Public Class Methods

for(path) click to toggle source
# File lib/yoda/store/adapters/leveldb_adapter.rb, line 9
def for(path)
  @pool ||= {}
  @pool[path] || (@pool[path] = new(path))
end
new(path) click to toggle source

@param path [String] represents the path to store db.

# File lib/yoda/store/adapters/leveldb_adapter.rb, line 20
def initialize(path)
  @path = path
  @db = LevelDB::DB.new(path, compression: true)

  at_exit { @db.closed? || @db.close }
end
type() click to toggle source
# File lib/yoda/store/adapters/leveldb_adapter.rb, line 14
def type
  :leveldb
end

Public Instance Methods

batch_write(data, bar) click to toggle source

@param data [Enumerator<(String, Object)>] @param bar [#increment, nil]

# File lib/yoda/store/adapters/leveldb_adapter.rb, line 42
def batch_write(data, bar)
  data.each do |(k, v)|
    @db.put(k, v)
    bar&.increment
  end
end
clear() click to toggle source
# File lib/yoda/store/adapters/leveldb_adapter.rb, line 70
def clear
  @db.destroy!
end
delete(address) click to toggle source

@param address [String] @return [void]

# File lib/yoda/store/adapters/leveldb_adapter.rb, line 51
def delete(address)
  @db.delete(address.to_s)
end
exist?(address) click to toggle source

@param address [String] @return [true, false]

# File lib/yoda/store/adapters/leveldb_adapter.rb, line 57
def exist?(address)
  @db.exists?(address.to_s)
end
get(address) click to toggle source

@param address [String] @return [any]

# File lib/yoda/store/adapters/leveldb_adapter.rb, line 29
def get(address)
  JSON.load(@db.get(address.to_s), symbolize_names: true)
end
keys() click to toggle source

@return [Array<String>]

# File lib/yoda/store/adapters/leveldb_adapter.rb, line 62
def keys
  @db.keys
end
put(address, object) click to toggle source

@param address [String] @param object [Object] @return [void]

# File lib/yoda/store/adapters/leveldb_adapter.rb, line 36
def put(address, object)
  @db.put(address.to_s, object.to_json)
end
stats() click to toggle source
# File lib/yoda/store/adapters/leveldb_adapter.rb, line 66
def stats
  @db.stats
end
sync() click to toggle source
# File lib/yoda/store/adapters/leveldb_adapter.rb, line 74
def sync
  # nop
end