From 524d8edf68ab94315a128cbd7570d1cf4faf7d7a Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Sat, 7 Feb 2009 16:18:09 -0600 Subject: Update bundled Rack for Ruby 1.9 spec changes --- .../action_controller/vendor/rack-1.0/rack/deflater.rb | 10 ++++++---- .../vendor/rack-1.0/rack/handler/cgi.rb | 2 +- .../vendor/rack-1.0/rack/handler/fastcgi.rb | 2 +- .../vendor/rack-1.0/rack/handler/lsws.rb | 2 +- .../vendor/rack-1.0/rack/handler/mongrel.rb | 2 +- .../vendor/rack-1.0/rack/handler/scgi.rb | 2 +- .../vendor/rack-1.0/rack/handler/webrick.rb | 4 ++-- .../lib/action_controller/vendor/rack-1.0/rack/lint.rb | 17 +++++++---------- .../lib/action_controller/vendor/rack-1.0/rack/mock.rb | 4 +--- .../lib/action_controller/vendor/rack-1.0/rack/utils.rb | 9 ++++++++- 10 files changed, 29 insertions(+), 25 deletions(-) (limited to 'actionpack/lib/action_controller/vendor') diff --git a/actionpack/lib/action_controller/vendor/rack-1.0/rack/deflater.rb b/actionpack/lib/action_controller/vendor/rack-1.0/rack/deflater.rb index 32f9a7ec29..3e66680092 100644 --- a/actionpack/lib/action_controller/vendor/rack-1.0/rack/deflater.rb +++ b/actionpack/lib/action_controller/vendor/rack-1.0/rack/deflater.rb @@ -36,17 +36,19 @@ module Rack mtime = headers.key?("Last-Modified") ? Time.httpdate(headers["Last-Modified"]) : Time.now body = self.class.gzip(body, mtime) - headers = headers.merge("Content-Encoding" => "gzip", "Content-Length" => body.length.to_s) + size = body.respond_to?(:bytesize) ? body.bytesize : body.size + headers = headers.merge("Content-Encoding" => "gzip", "Content-Length" => size.to_s) [status, headers, [body]] when "deflate" body = self.class.deflate(body) - headers = headers.merge("Content-Encoding" => "deflate", "Content-Length" => body.length.to_s) + size = body.respond_to?(:bytesize) ? body.bytesize : body.size + headers = headers.merge("Content-Encoding" => "deflate", "Content-Length" => size.to_s) [status, headers, [body]] when "identity" [status, headers, body] when nil - message = ["An acceptable encoding for the requested resource #{request.fullpath} could not be found."] - [406, {"Content-Type" => "text/plain", "Content-Length" => message[0].length.to_s}, message] + message = "An acceptable encoding for the requested resource #{request.fullpath} could not be found." + [406, {"Content-Type" => "text/plain", "Content-Length" => message.length.to_s}, [message]] end end diff --git a/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/cgi.rb b/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/cgi.rb index e8bf139da5..f2c976cf46 100644 --- a/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/cgi.rb +++ b/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/cgi.rb @@ -38,7 +38,7 @@ module Rack def self.send_headers(status, headers) STDOUT.print "Status: #{status}\r\n" headers.each { |k, vs| - vs.each { |v| + vs.split("\n").each { |v| STDOUT.print "#{k}: #{v}\r\n" } } diff --git a/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/fastcgi.rb b/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/fastcgi.rb index 75b94e9943..f03e1615c9 100644 --- a/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/fastcgi.rb +++ b/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/fastcgi.rb @@ -67,7 +67,7 @@ module Rack def self.send_headers(out, status, headers) out.print "Status: #{status}\r\n" headers.each { |k, vs| - vs.each { |v| + vs.split("\n").each { |v| out.print "#{k}: #{v}\r\n" } } diff --git a/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/lsws.rb b/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/lsws.rb index 265e67c10b..1f850fc77b 100644 --- a/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/lsws.rb +++ b/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/lsws.rb @@ -34,7 +34,7 @@ module Rack def self.send_headers(status, headers) print "Status: #{status}\r\n" headers.each { |k, vs| - vs.each { |v| + vs.split("\n").each { |v| print "#{k}: #{v}\r\n" } } diff --git a/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/mongrel.rb b/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/mongrel.rb index cd906862a5..178a1a8fe4 100644 --- a/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/mongrel.rb +++ b/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/mongrel.rb @@ -63,7 +63,7 @@ module Rack response.send_status(nil) headers.each { |k, vs| - vs.each { |v| + vs.split("\n").each { |v| response.header[k] = v } } diff --git a/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/scgi.rb b/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/scgi.rb index 053944091b..fd18a8359b 100644 --- a/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/scgi.rb +++ b/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/scgi.rb @@ -44,7 +44,7 @@ module Rack begin socket.write("Status: #{status}\r\n") headers.each do |k, vs| - vs.each {|v| socket.write("#{k}: #{v}\r\n")} + vs.split("\n").each { |v| socket.write("#{k}: #{v}\r\n")} end socket.write("\r\n") body.each {|s| socket.write(s)} diff --git a/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb b/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb index 604f48a288..40be79de13 100644 --- a/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb +++ b/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb @@ -42,9 +42,9 @@ module Rack res.status = status.to_i headers.each { |k, vs| if k.downcase == "set-cookie" - res.cookies.concat Array(vs) + res.cookies.concat vs.split("\n") else - vs.each { |v| + vs.split("\n").each { |v| res[k] = v } end diff --git a/actionpack/lib/action_controller/vendor/rack-1.0/rack/lint.rb b/actionpack/lib/action_controller/vendor/rack-1.0/rack/lint.rb index c8c4f674e6..53e54955b7 100644 --- a/actionpack/lib/action_controller/vendor/rack-1.0/rack/lint.rb +++ b/actionpack/lib/action_controller/vendor/rack-1.0/rack/lint.rb @@ -338,16 +338,13 @@ module Rack ## but only contain keys that consist of ## letters, digits, _ or - and start with a letter. assert("invalid header name: #{key}") { key =~ /\A[a-zA-Z][a-zA-Z0-9_-]*\z/ } - ## - ## The values of the header must respond to #each. - assert("header values must respond to #each, but the value of " + - "'#{key}' doesn't (is #{value.class})") { value.respond_to? :each } - value.each { |item| - ## The values passed on #each must be Strings - assert("header values must consist of Strings, but '#{key}' also contains a #{item.class}") { - item.instance_of?(String) - } - ## and not contain characters below 037. + + ## The values of the header must be Strings, + assert("a header value must be a String, but the value of " + + "'#{key}' is a #{value.class}") { value.kind_of? String } + ## consisting of lines (for multiple header values) seperated by "\n". + value.split("\n").each { |item| + ## The lines must not contain characters below 037. assert("invalid header value #{key}: #{item.inspect}") { item !~ /[\000-\037]/ } diff --git a/actionpack/lib/action_controller/vendor/rack-1.0/rack/mock.rb b/actionpack/lib/action_controller/vendor/rack-1.0/rack/mock.rb index b2951fb095..70852da3db 100644 --- a/actionpack/lib/action_controller/vendor/rack-1.0/rack/mock.rb +++ b/actionpack/lib/action_controller/vendor/rack-1.0/rack/mock.rb @@ -118,9 +118,7 @@ module Rack @original_headers = headers @headers = Rack::Utils::HeaderHash.new headers.each { |field, values| - values.each { |value| - @headers[field] = value - } + @headers[field] = values @headers[field] = "" if values.empty? } diff --git a/actionpack/lib/action_controller/vendor/rack-1.0/rack/utils.rb b/actionpack/lib/action_controller/vendor/rack-1.0/rack/utils.rb index 1bfe645176..5afeba7108 100644 --- a/actionpack/lib/action_controller/vendor/rack-1.0/rack/utils.rb +++ b/actionpack/lib/action_controller/vendor/rack-1.0/rack/utils.rb @@ -167,7 +167,14 @@ module Rack end def to_hash - {}.replace(self) + inject({}) do |hash, (k,v)| + if v.respond_to? :to_ary + hash[k] = v.to_ary.join("\n") + else + hash[k] = v + end + hash + end end def [](k) -- cgit v1.2.3