ruby-changes:16335
From: marcandre <ko1@a...>
Date: Sun, 13 Jun 2010 04:29:08 +0900 (JST)
Subject: [ruby-changes:16335] Ruby:r28310 (ruby_1_9_2): Backport revision 28309:
marcandre 2010-06-13 04:28:54 +0900 (Sun, 13 Jun 2010) New Revision: 28310 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=28310 Log: Backport revision 28309: * lib/delegate.rb: Delegate !=, eql? and hash [ruby-core:26139] Modified files: branches/ruby_1_9_2/ChangeLog branches/ruby_1_9_2/lib/delegate.rb Index: ruby_1_9_2/ChangeLog =================================================================== --- ruby_1_9_2/ChangeLog (revision 28309) +++ ruby_1_9_2/ChangeLog (revision 28310) @@ -1,3 +1,7 @@ +Sun Jun 13 04:27:55 2010 Marc-Andre Lafortune <ruby-core@m...> + + * lib/delegate.rb: Delegate !=, eql? and hash [ruby-core:26139] + Sun Jun 13 02:17:49 2010 NARUSE, Yui <naruse@r...> * enc/trans/utf8_mac.trans (buf_apply): fix for patterns Index: ruby_1_9_2/lib/delegate.rb =================================================================== --- ruby_1_9_2/lib/delegate.rb (revision 28309) +++ ruby_1_9_2/lib/delegate.rb (revision 28310) @@ -117,7 +117,7 @@ class Delegator < BasicObject kernel = ::Kernel.dup kernel.class_eval do - [:to_s,:inspect,:=~,:!~,:===,:<=>].each do |m| + [:to_s,:inspect,:=~,:!~,:===,:<=>,:eql?,:hash].each do |m| undef_method m end end @@ -187,7 +187,7 @@ # Note: no need to specialize private_methods, since they are not forwarded # - # Returns true if two objects are considered same. + # Returns true if two objects are considered of equal value. # def ==(obj) return true if obj.equal?(self) @@ -195,6 +195,18 @@ end # + # Returns true if two objects are not considered of equal value. + # + def !=(obj) + return false if obj.equal?(self) + __getobj__ != obj + end + + def ! + !__getobj__ + end + + # # This method must be overridden by subclasses and should return the object # method calls are being delegated to. # -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/