class Rack::JSONP::MethodOverride

Constants

HTTP_METHODS

Public Class Methods

new(app, method_override_param = '_method', callback_param = 'callback') click to toggle source
# File lib/rack/jsonp/method_override.rb, line 6
def initialize(app, method_override_param = '_method', callback_param = 'callback')
  @app = app
  @method_override_param = method_override_param
  @callback_param = callback_param
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/jsonp/method_override.rb, line 12
def call(env)
  request = Rack::Request.new(env)
  method_override = request.params[@method_override_param]

  if jsonp_callback_enabled?(request) && method_override && HTTP_METHODS.include?(method_override)
    env['jsonp.utils.method_override'] = method_override
    env['REQUEST_METHOD'] = method_override
  end

  @app.call(env)
end

Private Instance Methods

jsonp_callback_enabled?(request) click to toggle source
# File lib/rack/jsonp/method_override.rb, line 26
def jsonp_callback_enabled?(request)
  @callback_param && request.params[@callback_param]
end