From: Giuseppe Bilotta Date: Mon, 11 Jul 2011 15:26:00 +0000 (+0200) Subject: Fix TC db close on cleanup X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=33c582acdb8c57f302145fc3dc01a1bf2d7c8478;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git Fix TC db close on cleanup When closing the TC db on cleanup, we didn't remove it from the environment. Override the #close() method to achieve that. --- diff --git a/lib/rbot/registry/tc.rb b/lib/rbot/registry/tc.rb index 4477c115..8ffd3e40 100644 --- a/lib/rbot/registry/tc.rb +++ b/lib/rbot/registry/tc.rb @@ -117,15 +117,19 @@ module Irc if absfilename && File.exist?(key) # db already exists, use it @db = DBTree.open_db(key) + @fname = key.dup elsif absfilename # create empty db @db = DBTree.create_db(key) + @fname = key.dup elsif File.exist? relfilename # db already exists, use it @db = DBTree.open_db relfilename + @fname = relfilename.dup else # create empty db @db = DBTree.create_db relfilename + @fname = relfilename.dup end oldbasename = (absfilename ? key : relfilename).gsub(/\.tdb$/, ".db") if File.exists? oldbasename and defined? BDB @@ -155,6 +159,14 @@ module Irc @@bot_registries.clear end + def close + db = @@bot_registries.delete(@fname) + if db != @db + error "We think we have #{@db} from #{@fname}, TC pseudo-env gives us #{db}" + end + @db.close + end + def DBTree.create_db(name) debug "DBTree: creating empty db #{name}" if @@bot_registries.key? name