[前][次][番号順一覧][スレッド一覧]

ruby-changes:11721

From: knu <ko1@a...>
Date: Fri, 8 May 2009 02:33:05 +0900 (JST)
Subject: [ruby-changes:11721] Ruby:r23363 (trunk): * lib/set.rb (SortedSet#add): Do not require each newly added

knu	2009-05-08 02:32:48 +0900 (Fri, 08 May 2009)

  New Revision: 23363

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23363

  Log:
    * lib/set.rb (SortedSet#add): Do not require each newly added
      element to be Comparable but to respond to <=>. [ruby-dev:38371]

  Modified files:
    trunk/ChangeLog
    trunk/lib/set.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 23362)
+++ ChangeLog	(revision 23363)
@@ -1,3 +1,8 @@
+Fri May  8 02:30:14 2009  Akinori MUSHA  <knu@i...>
+
+	* lib/set.rb (SortedSet#add): Do not require each newly added
+	  element to be Comparable but to respond to <=>. [ruby-dev:38371]
+
 Thu May  7 21:42:51 2009  Yusuke Endoh  <mame@t...>
 
 	* test/ruby/test_rubyoptions.rb (test_indentation_check): add a test
Index: lib/set.rb
===================================================================
--- lib/set.rb	(revision 23362)
+++ lib/set.rb	(revision 23363)
@@ -456,8 +456,8 @@
 # yielded in sorted order (according to the return values of their
 # #<=> methods) when iterating over them.
 # 
-# All elements that are added to a SortedSet must include the
-# Comparable module.
+# All elements that are added to a SortedSet must respond to the <=>
+# method for comparison.
 # 
 # Also, all elements must be <em>mutually comparable</em>: <tt>el1 <=>
 # el2</tt> must not return <tt>nil</tt> for any elements <tt>el1</tt>
@@ -506,7 +506,7 @@
 	  end
 	  
 	  def add(o)
-	    o.is_a?(Comparable) or raise ArgumentError, "value must be comparable"
+	    o.respond_to?(:<=>) or raise ArgumentError, "value must repond to <=>"
 	    super
 	  end
 	  alias << add
@@ -529,7 +529,7 @@
 	  end
 
 	  def add(o)
-	    o.is_a?(Comparable) or raise ArgumentError, "value must be comparable"
+	    o.respond_to?(:<=>) or raise ArgumentError, "value must respond to <=>"
 	    @keys = nil
 	    super
 	  end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]