aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorktsj <ktsj@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-05-04 09:46:46 +0000
committerktsj <ktsj@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-05-04 09:46:46 +0000
commit6da221411969e8be9ed0793b23ed8224561ed20f (patch)
treedcfa936bb063f6c2a75454c8d87adf043257c2db
parent803177b38e5bc3ead7c5e5903f5f8135cd4b30a5 (diff)
downloadruby-6da221411969e8be9ed0793b23ed8224561ed20f.tar.gz
* lib/net/http/header.rb (Net::HTTPHeader#{each_header,each_name,
each_capitalized_name,each_value,each_capitalized}): Return sized enumerators. * test/net/http/test_httpheader.rb: add test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--lib/net/http/header.rb10
-rw-r--r--test/net/http/test_httpheader.rb40
3 files changed, 53 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index aac5b30851..ac7a9556cf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Wed May 4 18:38:00 2016 Kazuki Tsujimoto <kazuki@callcc.net>
+
+ * lib/net/http/header.rb (Net::HTTPHeader#{each_header,each_name,
+ each_capitalized_name,each_value,each_capitalized}): Return
+ sized enumerators.
+
+ * test/net/http/test_httpheader.rb: add test for above.
+
Wed May 4 17:53:15 2016 Kazuki Tsujimoto <kazuki@callcc.net>
* lib/set.rb (Set#{delete_if,keep_if,collect!,reject!,select!,classify,divide},
diff --git a/lib/net/http/header.rb b/lib/net/http/header.rb
index 59980caef6..bc4cce9098 100644
--- a/lib/net/http/header.rb
+++ b/lib/net/http/header.rb
@@ -101,7 +101,7 @@ module Net::HTTPHeader
# response.header.each_header {|key,value| puts "#{key} = #{value}" }
#
def each_header #:yield: +key+, +value+
- block_given? or return enum_for(__method__)
+ block_given? or return enum_for(__method__) { @header.size }
@header.each do |k,va|
yield k, va.join(', ')
end
@@ -112,7 +112,7 @@ module Net::HTTPHeader
# Iterates through the header names in the header, passing
# each header name to the code block.
def each_name(&block) #:yield: +key+
- block_given? or return enum_for(__method__)
+ block_given? or return enum_for(__method__) { @header.size }
@header.each_key(&block)
end
@@ -125,7 +125,7 @@ module Net::HTTPHeader
# capitalization may not match that used by the remote HTTP
# server in its response.
def each_capitalized_name #:yield: +key+
- block_given? or return enum_for(__method__)
+ block_given? or return enum_for(__method__) { @header.size }
@header.each_key do |k|
yield capitalize(k)
end
@@ -134,7 +134,7 @@ module Net::HTTPHeader
# Iterates through header values, passing each value to the
# code block.
def each_value #:yield: +value+
- block_given? or return enum_for(__method__)
+ block_given? or return enum_for(__method__) { @header.size }
@header.each_value do |va|
yield va.join(', ')
end
@@ -165,7 +165,7 @@ module Net::HTTPHeader
# capitalization may not match that used by the remote HTTP
# server in its response.
def each_capitalized
- block_given? or return enum_for(__method__)
+ block_given? or return enum_for(__method__) { @header.size }
@header.each do |k,v|
yield capitalize(k), v.join(', ')
end
diff --git a/test/net/http/test_httpheader.rb b/test/net/http/test_httpheader.rb
index effc3c5c78..99c47cac93 100644
--- a/test/net/http/test_httpheader.rb
+++ b/test/net/http/test_httpheader.rb
@@ -111,6 +111,12 @@ class HTTPHeaderTest < Test::Unit::TestCase
assert_equal 'my-header', k
assert_equal 'test', v
end
+ e = @c.each
+ assert_equal 1, e.size
+ e.each do |k, v|
+ assert_equal 'my-header', k
+ assert_equal 'test', v
+ end
end
def test_each_key
@@ -121,6 +127,12 @@ class HTTPHeaderTest < Test::Unit::TestCase
@c.each_key do |k|
assert_equal 'my-header', k
end
+ e = @c.each_key
+ assert_equal 1, e.size
+ e.each do |k|
+ assert_equal 'my-header', k
+ end
+ end
def test_each_capitalized_name
@c['my-header'] = 'test'
@@ -130,6 +142,11 @@ class HTTPHeaderTest < Test::Unit::TestCase
@c.each_capitalized_name do |k|
assert_equal 'My-Header', k
end
+ e = @c.each_capitalized_name
+ assert_equal 1, e.size
+ e.each do |k|
+ assert_equal 'My-Header', k
+ end
end
def test_each_value
@@ -140,6 +157,11 @@ class HTTPHeaderTest < Test::Unit::TestCase
@c.each_value do |v|
assert_equal 'test', v
end
+ e = @c.each_value
+ assert_equal 1, e.size
+ e.each do |v|
+ assert_equal 'test', v
+ end
end
def test_canonical_each
@@ -148,6 +170,12 @@ class HTTPHeaderTest < Test::Unit::TestCase
assert_equal 'My-Header', k
assert_equal 'a, b', v
end
+ e = @c.canonical_each
+ assert_equal 1, e.size
+ e.each do |k,v|
+ assert_equal 'My-Header', k
+ assert_equal 'a, b', v
+ end
end
def test_each_capitalized
@@ -156,6 +184,12 @@ class HTTPHeaderTest < Test::Unit::TestCase
assert_equal 'My-Header', k
assert_equal 'a, b', v
end
+ e = @c.each_capitalized
+ assert_equal 1, e.size
+ e.each do |k,v|
+ assert_equal 'My-Header', k
+ assert_equal 'a, b', v
+ end
end
def test_each_capitalized_with_symbol
@@ -164,6 +198,12 @@ class HTTPHeaderTest < Test::Unit::TestCase
assert_equal "My_header", k
assert_equal 'a, b', v
end
+ e = @c.each_capitalized
+ assert_equal 1, e.size
+ e.each do |k,v|
+ assert_equal 'My_header', k
+ assert_equal 'a, b', v
+ end
end
def test_key?