Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source
Show
Ignore:
Timestamp:
04/08/08 05:05:54 (5 months ago)
Author:
rick
Message:

Automatically parse posted JSON content for Mime::JSON requests. [rick]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/actionpack/lib/action_controller/base.rb

    r9123 r9242  
    317317    # 
    318318    #   ActionController::Base.param_parsers[Mime::YAML] = :yaml 
    319     @@param_parsers = { Mime::MULTIPART_FORM => :multipart_form, 
     319    @@param_parsers = { Mime::MULTIPART_FORM   => :multipart_form, 
    320320                        Mime::URL_ENCODED_FORM => :url_encoded_form, 
    321                         Mime::XML => :xml_simple } 
     321                        Mime::XML              => :xml_simple, 
     322                        Mime::JSON             => :json } 
    322323    cattr_accessor :param_parsers 
    323324 
  • trunk/actionpack/lib/action_controller/request.rb

    r9124 r9242  
    403403          when :yaml 
    404404            YAML.load(body) 
     405          when :json 
     406            if body.blank? 
     407              {} 
     408            else 
     409              data = ActiveSupport::JSON.decode(body) 
     410              data = {:_json => data} unless data.is_a?(Hash) 
     411              data.with_indifferent_access 
     412            end 
    405413          else 
    406414            {} 
     
    508516        end 
    509517 
    510  
    511518        MULTIPART_BOUNDARY = %r|\Amultipart/form-data.*boundary=\"?([^\";,]+)\"?|n 
    512519 
     
    605612          raise EOFError, "bad boundary end of body part" unless boundary_end=~/--/ 
    606613 
    607          begin 
     614          begin 
    608615            body.rewind if body.respond_to?(:rewind) 
    609          rescue Errno::ESPIPE 
     616          rescue Errno::ESPIPE 
    610617            # Handles exceptions raised by input streams that cannot be rewound 
    611618            # such as when using plain CGI under Apache 
    612          end 
     619          end 
    613620 
    614621          params 
  • trunk/actionpack/lib/action_view/template_handlers/erb.rb

    r9241 r9242  
    44  module Util 
    55    HTML_ESCAPE = { '&' => '&amp;',  '>' => '&gt;',   '<' => '&lt;', '"' => '&quot;' } 
    6     JSON_ESCAPE = { '&' => '\u0026', '>' => '\u003E', '<' => '\u003C'
     6    JSON_ESCAPE = { '&' => '\u0026', '>' => '\u003E', '<' => '\u003C'
    77 
    88    # A utility method for escaping HTML tag characters.