Sha256: f71070f8dd0209b13ba5dd05133c820c8bf5f4714d146147492deb4f561536dc

Contents?: true

Size: 772 Bytes

Versions: 2

Compression:

Stored size: 772 Bytes

Contents

module Remotipart

  # A middleware to look for our form parameters and 
  # encourage Rails to respond with the requested format
  class Middleware
    def initialize app
      @app = app
    end

    def call env
      # Get request params
      params = Rack::Request.new(env).params

      # This was using an iframe transport, and is therefore an XHR
      # This is required if we're going to override the http_accept
      if params and params['X-Requested-With'] == 'IFrame'
        env['HTTP_X_REQUESTED_WITH'] = 'xmlhttprequest'
      end

      # Override the accepted format, because it isn't what we really want
      if params and params['X-Http-Accept']
        env['HTTP_ACCEPT'] = params['X-Http-Accept']
      end

      @app.call(env)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
remotipart-1.2.0 lib/remotipart/middleware.rb
remotipart-1.1.1 lib/remotipart/middleware.rb