]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - lib/rbot/registry.rb
+ (userdata) method delete_botdata(key)
[user/henk/code/ruby/rbot.git] / lib / rbot / registry.rb
index cf27290a61c1c7ad571f0f868f70627044ccd8b8..b85a622426de23442a71b5039e144c4051ce3f3b 100644 (file)
@@ -191,17 +191,16 @@ class Bot
             debug ee
           end
         end
-        return @default
+        return default
       end
     end
 
     # lookup a key in the registry
     def [](key)
-      return @default unless File.exist?(@filename)
-      if registry.has_key?(key)
+      if File.exist?(@filename) && registry.has_key?(key)
         return restore(registry[key])
       else
-        return @default
+        return default
       end
     end
 
@@ -216,6 +215,10 @@ class Bot
       @default = default
     end
 
+    def default
+      @default && (@default.dup rescue @default)
+    end
+
     # just like Hash#each
     def each(&block)
       return nil unless File.exist?(@filename)
@@ -274,7 +277,7 @@ class Bot
 
     # delete a key from the registry
     def delete(key)
-      return @default unless File.exist?(@filename)
+      return default unless File.exist?(@filename)
       return registry.delete(key)
     end