DBTree is a BTree equivalent of DBHash, with case insensitive lookups.
DBTree is a BTree equivalent of DBHash, with case insensitive lookups.
# File lib/rbot/registry/tc.rb, line 170 def DBTree.cleanup_env() # no-op end
# File lib/rbot/registry/tc.rb, line 162 def DBTree.cleanup_logs() # no-op end
# File lib/rbot/registry/tc.rb, line 146 def DBTree.create_db(name) debug "DBTree: creating empty db #{name}" db = TokyoCabinet::CIBDB.new res = db.open(name, TokyoCabinet::CIBDB::OREADER | TokyoCabinet::CIBDB::OCREAT | TokyoCabinet::CIBDB::OWRITER) warning "DBTree: creating empty db #{name}: #{db.errmsg(db.ecode) unless res}" return db end
absfilename |
use key as an actual filename, don't prepend the bot's config path and don't append ".db" |
# File lib/rbot/registry/tc.rb, line 107 def initialize(bot, key, absfilename=false) @bot = bot @key = key relfilename = @bot.path key relfilename << '.tdb' if absfilename && File.exist?(key) # db already exists, use it @db = DBTree.open_db(key) elsif absfilename # create empty db @db = DBTree.create_db(key) elsif File.exist? relfilename # db already exists, use it @db = DBTree.open_db relfilename else # create empty db @db = DBTree.create_db relfilename end oldbasename = (absfilename ? key : relfilename).gsub(/\.tdb$/, ".db") if File.exists? oldbasename and defined? BDB # upgrading warning "Upgrading old database #{oldbasename}..." oldb = ::BDB::Btree.open(oldbasename, nil, "r", 0600) oldb.each_key do |k| @db.outlist k @db.putlist k, (oldb.duplicates(k, false)) end oldb.close File.rename oldbasename, oldbasename+".bak" end @db end
# File lib/rbot/registry/tc.rb, line 154 def DBTree.open_db(name) debug "DBTree: opening existing db #{name}" db = TokyoCabinet::CIBDB.new res = db.open(name, TokyoCabinet::CIBDB::OREADER | TokyoCabinet::CIBDB::OWRITER) warning "DBTree:opening db #{name}: #{db.errmsg(db.ecode) unless res}" return db end
Generated with the Darkfish Rdoc Generator 2.