diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | lib/net/http/header.rb | 10 | ||||
-rw-r--r-- | test/net/http/test_httpheader.rb | 40 |
3 files changed, 53 insertions, 5 deletions
@@ -1,3 +1,11 @@ +Wed May 4 18:38:00 2016 Kazuki Tsujimoto <[email protected]> + + * 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 <[email protected]> * 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? |