class Rack::Middleware::JsonParser

Attributes

app[R]

Public Class Methods

new(app) click to toggle source
# File lib/rack/middleware/json_parser.rb, line 10
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/middleware/json_parser.rb, line 14
def call(env)
  if env['CONTENT_TYPE'] == 'application/json' and (%w[put post].include?(env['REQUEST_METHOD'].downcase))
    input = env['rack.input']
    input.rewind
    env['rack.json'] = Oj.load(input.read, symbol_keys: true)
  end
  app.call(env)
rescue Oj::ParseError
  raise Error
end