class Jpmobile::Rack::ParamsFilter

Public Class Methods

new(app) click to toggle source
# File lib/jpmobile/rack/params_filter.rb, line 5
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/jpmobile/rack/params_filter.rb, line 9
def call(env)
  # 入力
  if @mobile = env['rack.jpmobile'] and @mobile.apply_params_filter?
    # パラメータをkey, valueに分解
    # form_params
    if env['REQUEST_METHOD'] == 'POST' || env['REQUEST_METHOD'] == 'PUT'
      env['rack.input'] = StringIO.new(parse_query(env['rack.input'].read))
    end

    # query_params
    env['QUERY_STRING'] = parse_query(env['QUERY_STRING'])
  end

  status, env, body = @app.call(env)

  [status, env, body]
end