X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=lib%2Frbot%2Fregistry.rb;h=b85a622426de23442a71b5039e144c4051ce3f3b;hb=2d2e6d1fb24e5d687eab7e77bf251ad777ca736d;hp=cce2b5c89608fe45454133104b5bcd8f805e4da7;hpb=798cbea49964b32478f582ef11b25a15b6c811bd;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/lib/rbot/registry.rb b/lib/rbot/registry.rb index cce2b5c8..b85a6224 100644 --- a/lib/rbot/registry.rb +++ b/lib/rbot/registry.rb @@ -191,27 +191,16 @@ class Bot debug ee end end - unless @default.nil? - begin - return Marshal.restore(@default) - rescue - return nil - end - else - return nil - end + return default end end # lookup a key in the registry def [](key) - return nil unless File.exist?(@filename) - if registry.has_key?(key) + if File.exist?(@filename) && registry.has_key?(key) return restore(registry[key]) - elsif @default != nil - return restore(@default) else - return nil + return default end end @@ -223,7 +212,11 @@ class Bot # set the default value for registry lookups, if the key sought is not # found, the default will be returned. The default default (har) is nil. def set_default (default) - @default = store(default) + @default = default + end + + def default + @default && (@default.dup rescue @default) end # just like Hash#each @@ -284,7 +277,7 @@ class Bot # delete a key from the registry def delete(key) - return nil unless File.exist?(@filename) + return default unless File.exist?(@filename) return registry.delete(key) end