diff options
author | Spencer Rinehart <anubis@overthemonkey.com> | 2009-03-06 10:08:06 -0500 |
---|---|---|
committer | Spencer Rinehart <anubis@overthemonkey.com> | 2009-03-06 10:22:21 -0500 |
commit | 0a44338d09e921440fac821b1db8d03e71a10ff0 (patch) | |
tree | 053a7893a887719aa9f2275a581535ec35c9e7cc /lib/rbot/irc.rb | |
parent | c3aec9254dd9e48c0fcc7bfd5432d6555b881071 (diff) |
irc: monkeypatch Singleton to make _load and _dump public.
This is to fix a possible bug in newer versions of ruby where _load was
declared private in singletons. This would lead to errors where Marshal
could not restore the Singleton. This "bug" was introduced to ruby
in revisions 16659 and 17396.
Diffstat (limited to 'lib/rbot/irc.rb')
-rw-r--r-- | lib/rbot/irc.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/rbot/irc.rb b/lib/rbot/irc.rb index 4c462bb3..9a9998e7 100644 --- a/lib/rbot/irc.rb +++ b/lib/rbot/irc.rb @@ -21,6 +21,19 @@ require 'singleton' +# The following monkeypatch is to fix a bug in Singleton where marshaling would +# fail when trying to restore a marshaled Singleton due to _load being declared +# private. +module ::Singleton + public :_dump +end + +class << Singleton + module SingletonClassMethods + public :_load + end +end + class Object # We extend the Object class with a method that |