diff options
author | jeg2 <jeg2@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-05-26 15:35:06 +0000 |
---|---|---|
committer | jeg2 <jeg2@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-05-26 15:35:06 +0000 |
commit | a9c056f1ed254c99152134235bd973ec503f64f2 (patch) | |
tree | 3896fb8bf7c10c2a03390fb8e45e828912fed8f5 | |
parent | b74f5dee4a3a2b62753e42b87ec26837d508fa9a (diff) | |
download | ruby-a9c056f1ed254c99152134235bd973ec503f64f2.tar.gz |
* lib/csv.rb: Enhance each() to support Enumerator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | lib/csv.rb | 8 | ||||
-rwxr-xr-x | test/csv/test_interface.rb | 8 |
3 files changed, 20 insertions, 4 deletions
@@ -1,7 +1,11 @@ +Thu May 27 00:34:07 2011 James Edward Gray II <jeg2@ruby-lang.org> + + * lib/csv.rb: Enhance each() to support Enumerator. + Thu May 26 10:32:11 2011 James Edward Gray II <jeg2@ruby-lang.org> - * lib/csv.rb: Documentation improvements from Ysiad Ferreiras. - [Ruby 1.9 - Bug #4785] + * lib/csv.rb: Documentation improvements from Ysiad Ferreiras. + [Ruby 1.9 - Bug #4785] Thu May 26 15:42:02 2011 Cezary Baginski <cezary.baginski@gmail.com> diff --git a/lib/csv.rb b/lib/csv.rb index 48c2e97eda..c7649b8842 100644 --- a/lib/csv.rb +++ b/lib/csv.rb @@ -1787,8 +1787,12 @@ class CSV # The data source must be open for reading. # def each - while row = shift - yield row + if block_given? + while row = shift + yield row + end + else + to_enum end end diff --git a/test/csv/test_interface.rb b/test/csv/test_interface.rb index 92da39cebc..785f43126b 100755 --- a/test/csv/test_interface.rb +++ b/test/csv/test_interface.rb @@ -112,6 +112,14 @@ class TestCSV::Interface < TestCSV assert_equal(nil, csv.shift) end end + + def test_enumerators_are_supported + CSV.open(@path, col_sep: "\t", row_sep: "\r\n") do |csv| + enum = csv.each + assert_instance_of(Enumerator, enum) + assert_equal(@expected.shift, enum.next) + end + end ### Test Write Interface ### |