module Persist::LevelDBAdapter
Attributes
Public Class Methods
Source
# File lib/rbbt/persist/tsv/leveldb.rb, line 8 def self.open(path, write) database = CONNECTIONS[path] ||= begin LevelDB::DB.new path end database.extend Persist::LevelDBAdapter unless Persist::LevelDBAdapter === database database.persistence_path ||= path database end
Public Instance Methods
Source
# File lib/rbbt/persist/tsv/leveldb.rb, line 24 def get_prefix(key) keys = prefix(key) select(:key => keys) end
Source
# File lib/rbbt/persist/tsv/leveldb.rb, line 29 def include?(key) includes?(key) end
Source
# File lib/rbbt/persist/tsv/leveldb.rb, line 93 def merge!(hash) hash.each do |key,values| self[key] = values end end
Source
# File lib/rbbt/persist/tsv/leveldb.rb, line 20 def prefix(key) range(key, 1, key + 255.chr, 1) end
Source
# File lib/rbbt/persist/tsv/leveldb.rb, line 100 def range(*args) super(*args) - TSV::ENTRY_KEYS.to_a end
Calls superclass method
Source
# File lib/rbbt/persist/tsv/leveldb.rb, line 41 def read(force = false) self end
Source
# File lib/rbbt/persist/tsv/leveldb.rb, line 83 def read_and_close read if @closed or write? res = begin yield ensure close end res end
Source
# File lib/rbbt/persist/tsv/leveldb.rb, line 45 def write(force = true) self end
Source
# File lib/rbbt/persist/tsv/leveldb.rb, line 70 def write_and_close lock_filename = Persist.persistence_path(persistence_path, {:dir => TSV.lock_dir}) Misc.lock(lock_filename) do write if @closed or not write? res = begin yield ensure close end res end end
Source
# File lib/rbbt/persist/tsv/leveldb.rb, line 57 def write_and_read lock_filename = Persist.persistence_path(persistence_path, {:dir => TSV.lock_dir}) Misc.lock(lock_filename) do write if @closed or not write? res = begin yield ensure read end res end end