diff options
Diffstat (limited to 'actionpack/lib/action_controller/vendor/rack-1.0/rack/lint.rb')
-rw-r--r-- | actionpack/lib/action_controller/vendor/rack-1.0/rack/lint.rb | 17 |
1 files changed, 7 insertions, 10 deletions
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, <tt>_</tt> or <tt>-</tt> 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]/ } |