ruby-changes:4674
From: ko1@a...
Date: Wed, 23 Apr 2008 11:53:22 +0900 (JST)
Subject: [ruby-changes:4674] knu - Ruby:r16168 (ruby_1_8): * lib/set.rb (Set#each, SortedSet#each, TC_Set#test_each): Return
knu 2008-04-23 11:53:10 +0900 (Wed, 23 Apr 2008)
New Revision: 16168
Modified files:
branches/ruby_1_8/ChangeLog
branches/ruby_1_8/lib/set.rb
Log:
* lib/set.rb (Set#each, SortedSet#each, TC_Set#test_each): Return
an enumerator if no block is given.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=16168&r2=16167&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/lib/set.rb?r1=16168&r2=16167&diff_format=u
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog (revision 16167)
+++ ruby_1_8/ChangeLog (revision 16168)
@@ -1,3 +1,8 @@
+Wed Apr 23 11:49:54 2008 Akinori MUSHA <knu@i...>
+
+ * lib/set.rb (Set#each, SortedSet#each, TC_Set#test_each): Return
+ an enumerator if no block is given.
+
Wed Apr 23 00:42:49 2008 Tanaka Akira <akr@f...>
* eval.c (error_print): show full stack grace except SystemStackError.
Index: ruby_1_8/lib/set.rb
===================================================================
--- ruby_1_8/lib/set.rb (revision 16167)
+++ ruby_1_8/lib/set.rb (revision 16168)
@@ -2,7 +2,7 @@
#--
# set.rb - defines the Set class
#++
-# Copyright (c) 2002 Akinori MUSHA <knu@i...>
+# Copyright (c) 2002-2008 Akinori MUSHA <knu@i...>
#
# Documentation by Akinori MUSHA and Gavin Sinclair.
#
@@ -188,8 +188,10 @@
end
# Calls the given block once for each element in the set, passing
- # the element as parameter.
+ # the element as parameter. Returns an enumerator if no block is
+ # given.
def each
+ block_given? or return enum_for(__method__)
@hash.each_key { |o| yield(o) }
self
end
@@ -501,6 +503,7 @@
end
def each
+ block_given? or return enum_for(__method__)
to_a.each { |o| yield(o) }
end
@@ -918,9 +921,8 @@
ary = [1,3,5,7,10,20]
set = Set.new(ary)
- assert_raises(LocalJumpError) {
- set.each
- }
+ e = set.each
+ assert_instance_of(Enumerable::Enumerator, e)
assert_nothing_raised {
set.each { |o|
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/