Created
September 9, 2009 14:19
-
-
Save calavera/183754 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 1e3fc7d16c791147e769d49ab8f9b14a5bae1498 Mon Sep 17 00:00:00 2001 | |
From: David Calavera <[email protected]> | |
Date: Thu, 10 Sep 2009 18:40:24 +0200 | |
Subject: [PATCH] added Enumerator#with_object and Enumerator#each_with_object specs | |
--- | |
core/enumerator/each_with_object_spec.rb | 8 ++++++++ | |
core/enumerator/with_object_spec.rb | 8 ++++++++ | |
shared/enumerator/with_object.rb | 19 +++++++++++++++++++ | |
3 files changed, 35 insertions(+), 0 deletions(-) | |
create mode 100644 core/enumerator/each_with_object_spec.rb | |
create mode 100644 core/enumerator/with_object_spec.rb | |
create mode 100644 shared/enumerator/with_object.rb | |
diff --git a/core/enumerator/each_with_object_spec.rb b/core/enumerator/each_with_object_spec.rb | |
new file mode 100644 | |
index 0000000..a765470 | |
--- /dev/null | |
+++ b/core/enumerator/each_with_object_spec.rb | |
@@ -0,0 +1,8 @@ | |
+require File.dirname(__FILE__) + '/../../spec_helper' | |
+require File.dirname(__FILE__) + '/../../shared/enumerator/with_object.rb' | |
+ | |
+ruby_version_is "1.9" do | |
+ describe "Enumerator#each_with_object" do | |
+ it_behaves_like :enum_with_object, :each_with_object | |
+ end | |
+end | |
diff --git a/core/enumerator/with_object_spec.rb b/core/enumerator/with_object_spec.rb | |
new file mode 100644 | |
index 0000000..0910246 | |
--- /dev/null | |
+++ b/core/enumerator/with_object_spec.rb | |
@@ -0,0 +1,8 @@ | |
+require File.dirname(__FILE__) + '/../../spec_helper' | |
+require File.dirname(__FILE__) + '/../../shared/enumerator/with_object.rb' | |
+ | |
+ruby_version_is "1.9" do | |
+ describe "Enumerator#with_object" do | |
+ it_behaves_like :enum_with_object, :with_object | |
+ end | |
+end | |
diff --git a/shared/enumerator/with_object.rb b/shared/enumerator/with_object.rb | |
new file mode 100644 | |
index 0000000..6e5745f | |
--- /dev/null | |
+++ b/shared/enumerator/with_object.rb | |
@@ -0,0 +1,19 @@ | |
+require File.dirname(__FILE__) + '/../../spec_helper' | |
+ | |
+describe :enum_with_object, :shared => true do | |
+ it "returns an enumerator when not given a block" do | |
+ [].to_enum.send(@method, '').should be_an_instance_of(Enumerator) | |
+ end | |
+ | |
+ it "returns the given object when given a block" do | |
+ object = [].to_enum.send(@method, 'wadus') {|i, o| o = o + o} | |
+ object.should == 'wadus' | |
+ end | |
+ | |
+ it "iterates over the array adding the given object" do | |
+ expected = '' | |
+ %w|wadus wadus|.each.send(@method, ' ') {|e, o| expected += e + o} | |
+ | |
+ expected.should == 'wadus wadus ' | |
+ end | |
+end | |
\ No newline at end of file | |
-- | |
1.6.0.3 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment