diff options
Diffstat (limited to 'actionpack/lib/action_dispatch/http')
| -rw-r--r-- | actionpack/lib/action_dispatch/http/mime_type.rb | 18 | ||||
| -rw-r--r-- | actionpack/lib/action_dispatch/http/parameters.rb | 18 | ||||
| -rw-r--r-- | actionpack/lib/action_dispatch/http/request.rb | 19 | ||||
| -rw-r--r-- | actionpack/lib/action_dispatch/http/response.rb | 22 | 
4 files changed, 29 insertions, 48 deletions
| diff --git a/actionpack/lib/action_dispatch/http/mime_type.rb b/actionpack/lib/action_dispatch/http/mime_type.rb index f29ad359ac..ef144c3c76 100644 --- a/actionpack/lib/action_dispatch/http/mime_type.rb +++ b/actionpack/lib/action_dispatch/http/mime_type.rb @@ -53,10 +53,6 @@ module Mime      @@html_types = Set.new [:html, :all]      cattr_reader :html_types -    # These are the content types which browsers can generate without using ajax, flash, etc -    # i.e. following a link, getting an image or posting a form. CSRF protection -    # only needs to protect against these types. -    @@browser_generated_types = Set.new [:html, :url_encoded_form, :multipart_form, :text]      attr_reader :symbol      @register_callbacks = [] @@ -179,7 +175,7 @@ module Mime        def parse(accept_header)          if accept_header !~ /,/            accept_header = accept_header.split(PARAMETER_SEPARATOR_REGEXP).first -          parse_trailing_star(accept_header) || [Mime::Type.lookup(accept_header)] +          parse_trailing_star(accept_header) || [Mime::Type.lookup(accept_header)].compact          else            list, index = AcceptList.new, 0            accept_header.split(',').each do |header| @@ -272,18 +268,6 @@ module Mime        end      end -    # Returns true if Action Pack should check requests using this Mime Type for possible request forgery. See -    # ActionController::RequestForgeryProtection. -    def verify_request? -      ActiveSupport::Deprecation.warn "Mime::Type#verify_request? is deprecated and will be removed in Rails 4.1" -      @@browser_generated_types.include?(to_sym) -    end - -    def self.browser_generated_types -      ActiveSupport::Deprecation.warn "Mime::Type.browser_generated_types is deprecated and will be removed in Rails 4.1" -      @@browser_generated_types -    end -      def html?        @@html_types.include?(to_sym) || @string =~ /html/      end diff --git a/actionpack/lib/action_dispatch/http/parameters.rb b/actionpack/lib/action_dispatch/http/parameters.rb index 20c24ddd85..8e992070f1 100644 --- a/actionpack/lib/action_dispatch/http/parameters.rb +++ b/actionpack/lib/action_dispatch/http/parameters.rb @@ -64,17 +64,13 @@ module ActionDispatch          end          new_hash = {} -        params.each do |k, v| -          new_key = k.is_a?(String) ? k.dup.force_encoding(Encoding::UTF_8).encode! : k -          new_hash[new_key] = -            case v -            when Hash -              normalize_encode_params(v) -            when Array -              v.map! {|el| normalize_encode_params(el) } -            else -              normalize_encode_params(v) -            end +        params.each do |key, val| +          new_key = key.is_a?(String) ? key.dup.force_encoding(Encoding::UTF_8).encode! : key +          new_hash[new_key] = if val.is_a?(Array) +            val.map! { |el| normalize_encode_params(el) } +          else +            normalize_encode_params(val) +          end          end          new_hash.with_indifferent_access        end diff --git a/actionpack/lib/action_dispatch/http/request.rb b/actionpack/lib/action_dispatch/http/request.rb index ebd87c40b5..4ca1d35489 100644 --- a/actionpack/lib/action_dispatch/http/request.rb +++ b/actionpack/lib/action_dispatch/http/request.rb @@ -22,6 +22,7 @@ module ActionDispatch      include ActionDispatch::Http::URL      autoload :Session, 'action_dispatch/request/session' +    autoload :Utils,   'action_dispatch/request/utils'      LOCALHOST   = Regexp.union [/^127\.0\.0\.\d{1,3}$/, /^::1$/, /^0:0:0:0:0:0:0:1(%.*)?$/] @@ -299,26 +300,10 @@ module ActionDispatch        LOCALHOST =~ remote_addr && LOCALHOST =~ remote_ip      end -    # Remove nils from the params hash -    def deep_munge(hash) -      hash.each do |k, v| -        case v -        when Array -          v.grep(Hash) { |x| deep_munge(x) } -          v.compact! -          hash[k] = nil if v.empty? -        when Hash -          deep_munge(v) -        end -      end - -      hash -    end -      protected      def parse_query(qs) -      deep_munge(super) +      Utils.deep_munge(super)      end      private diff --git a/actionpack/lib/action_dispatch/http/response.rb b/actionpack/lib/action_dispatch/http/response.rb index 60a2cccdc5..5697282791 100644 --- a/actionpack/lib/action_dispatch/http/response.rb +++ b/actionpack/lib/action_dispatch/http/response.rb @@ -31,10 +31,17 @@ module ActionDispatch # :nodoc:    #    end    #  end    class Response -    attr_accessor :request, :header +    # The request that the response is responding to. +    attr_accessor :request + +    # The HTTP status code.      attr_reader :status +      attr_writer :sending_file +    # Get and set headers for this response. +    attr_accessor :header +          alias_method :headers=, :header=      alias_method :headers,  :header @@ -49,9 +56,12 @@ module ActionDispatch # :nodoc:      # If a character set has been defined for this response (see charset=) then      # the character set information will also be included in the content type      # information. -    attr_accessor :charset      attr_reader   :content_type +    # The charset of the response. HTML wants to know the encoding of the +    # content you're giving them, so we need to send that along. +    attr_accessor :charset +      CONTENT_TYPE = "Content-Type".freeze      SET_COOKIE   = "Set-Cookie".freeze      LOCATION     = "Location".freeze @@ -93,6 +103,7 @@ module ActionDispatch # :nodoc:        end      end +    # The underlying body, as a streamable object.      attr_reader :stream      def initialize(status = 200, header = {}, body = []) @@ -142,6 +153,7 @@ module ActionDispatch # :nodoc:        @status = Rack::Utils.status_code(status)      end +    # Sets the HTTP content type.      def content_type=(content_type)        @content_type = content_type.to_s      end @@ -216,11 +228,13 @@ module ActionDispatch # :nodoc:        ::Rack::Utils.delete_cookie_header!(header, key, value)      end +    # The location header we'll be responding with.      def location        headers[LOCATION]      end      alias_method :redirect_url, :location +    # Sets the location header we'll be responding with.      def location=(url)        headers[LOCATION] = url      end @@ -229,11 +243,13 @@ module ActionDispatch # :nodoc:        stream.close if stream.respond_to?(:close)      end +    # Turns the Response into a Rack-compatible array of the status, headers, +    # and body.      def to_a        rack_response @status, @header.to_hash      end      alias prepare! to_a -    alias to_ary   to_a # For implicit splat on 1.9.2 +    alias to_ary   to_a      # Returns the response cookies, converted to a Hash of (name => value) pairs      # | 
