Sha256: 8f1c8111ba7cf571adaf851ca1b103691532be500cd5651b9c9100f1431e87e4
Contents?: true
Size: 1.28 KB
Versions: 2
Compression:
Stored size: 1.28 KB
Contents
# frozen_string_literal: true require 'grape/util/lazy_object' module Grape class Request < Rack::Request HTTP_PREFIX = 'HTTP_' alias rack_params params def initialize(env, **options) extend options[:build_params_with] || Grape.config.param_builder super(env) end def params @params ||= build_params rescue EOFError raise Grape::Exceptions::EmptyMessageBody.new(content_type) rescue Rack::Multipart::MultipartPartLimitError raise Grape::Exceptions::TooManyMultipartFiles.new(Rack::Utils.multipart_part_limit) end def headers @headers ||= build_headers end private def grape_routing_args args = env[Grape::Env::GRAPE_ROUTING_ARGS].dup # preserve version from query string parameters args.delete(:version) args.delete(:route_info) args end def build_headers Grape::Util::LazyObject.new do env.each_pair.with_object({}) do |(k, v), headers| next unless k.to_s.start_with? HTTP_PREFIX transformed_header = Grape::Http::Headers::HTTP_HEADERS[k] || transform_header(k) headers[transformed_header] = v end end end def transform_header(header) -header[5..].split('_').each(&:capitalize!).join('-') end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
grape-1.8.0 | lib/grape/request.rb |
grape-1.7.1 | lib/grape/request.rb |