summaryrefslogtreecommitdiff
path: root/ruby_1_8_6/lib/test/unit/util/procwrapper.rb
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-07-07 07:36:34 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-07-07 07:36:34 +0000
commit441546edcfbb1b346c87b69c5f578d1a0e522e06 (patch)
tree04f606a008baebc445f38944ad37e87468da29ea /ruby_1_8_6/lib/test/unit/util/procwrapper.rb
parentfa93611c0f9a6db146341c792bfe3b7322ec00e2 (diff)
add tag v1_8_6_269
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_6_269@17937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby_1_8_6/lib/test/unit/util/procwrapper.rb')
-rw-r--r--ruby_1_8_6/lib/test/unit/util/procwrapper.rb48
1 files changed, 48 insertions, 0 deletions
diff --git a/ruby_1_8_6/lib/test/unit/util/procwrapper.rb b/ruby_1_8_6/lib/test/unit/util/procwrapper.rb
new file mode 100644
index 0000000000..ad7252186d
--- /dev/null
+++ b/ruby_1_8_6/lib/test/unit/util/procwrapper.rb
@@ -0,0 +1,48 @@
+#--
+#
+# Author:: Nathaniel Talbott.
+# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
+# License:: Ruby license.
+
+module Test
+ module Unit
+ module Util
+
+ # Allows the storage of a Proc passed through '&' in a
+ # hash.
+ #
+ # Note: this may be inefficient, since the hash being
+ # used is not necessarily very good. In Observable,
+ # efficiency is not too important, since the hash is
+ # only accessed when adding and removing listeners,
+ # not when notifying.
+
+ class ProcWrapper
+
+ # Creates a new wrapper for a_proc.
+ def initialize(a_proc)
+ @a_proc = a_proc
+ @hash = a_proc.inspect.sub(/^(#<#{a_proc.class}:)/){''}.sub(/(>)$/){''}.hex
+ end
+
+ def hash
+ return @hash
+ end
+
+ def ==(other)
+ case(other)
+ when ProcWrapper
+ return @a_proc == other.to_proc
+ else
+ return super
+ end
+ end
+ alias :eql? :==
+
+ def to_proc
+ return @a_proc
+ end
+ end
+ end
+ end
+end