lib/hanami/middleware/body_parser.rb in hanami-router-1.3.2 vs lib/hanami/middleware/body_parser.rb in hanami-router-2.0.0.alpha1
- old
+ new
@@ -1,34 +1,37 @@
-require 'hanami/utils/hash'
-require_relative 'body_parser/class_interface'
+# frozen_string_literal: true
+require "hanami/utils/hash"
+require "hanami/middleware/error"
+require_relative "body_parser/class_interface"
+
module Hanami
module Middleware
# @since 1.3.0
# @api private
class BodyParser
# @since 1.3.0
# @api private
- CONTENT_TYPE = 'CONTENT_TYPE'.freeze
+ CONTENT_TYPE = "CONTENT_TYPE"
# @since 1.3.0
# @api private
MEDIA_TYPE_MATCHER = /\s*[;,]\s*/.freeze
# @since 1.3.0
# @api private
- RACK_INPUT = 'rack.input'.freeze
+ RACK_INPUT = "rack.input"
# @since 1.3.0
# @api private
- ROUTER_PARAMS = 'router.params'.freeze
+ ROUTER_PARAMS = "router.params"
# @api private
- ROUTER_PARSED_BODY = 'router.parsed_body'.freeze
+ ROUTER_PARSED_BODY = "router.parsed_body"
# @api private
- FALLBACK_KEY = '_'.freeze
+ FALLBACK_KEY = "_"
extend ClassInterface
def initialize(app, parsers)
@app = app
@@ -53,22 +56,22 @@
def build_parsers(parser_names)
parser_names = Array(parser_names)
return {} if parser_names.empty?
- parser_names.each_with_object({}) { |name, parsers|
+ parser_names.each_with_object({}) do |name, parsers|
parser = self.class.for(name)
parser.mime_types.each do |mime|
parsers[mime] = parser
end
- }
+ end
end
# @api private
def _symbolize(body)
- if body.is_a?(Hash)
+ if body.is_a?(::Hash)
Utils::Hash.deep_symbolize(body)
else
{ FALLBACK_KEY => body }
end
end
@@ -80,12 +83,13 @@
].parse(body)
end
# @api private
def media_type(env)
- if ct = content_type(env)
- ct.split(MEDIA_TYPE_MATCHER, 2).first.downcase
- end
+ ct = content_type(env)
+ return unless ct
+
+ ct.split(MEDIA_TYPE_MATCHER, 2).first.downcase
end
# @api private
def content_type(env)
content_type = env[CONTENT_TYPE]