Sha256: a5f2f13e78189324579b764fe5d411cfc3f05a8303ceba7b313fc409eff4059b
Contents?: true
Size: 1.08 KB
Versions: 1
Compression:
Stored size: 1.08 KB
Contents
require 'multi_json' module Esplanade class Request class Raw class Body def initialize(raw_request, env) @raw_request = raw_request @env = env end def to_string return @string if @string @string = @env['rack.input'].read @env['rack.input'].rewind @string end def to_hash @hash ||= if to_string.nil? {} else MultiJson.load(to_string) end rescue MultiJson::ParseError raise BodyIsNotJson, message end def reduced_version @reduced_version ||= if to_string.size >= 1000 "#{to_string[0..499]}...#{to_string[500..-1]}" else to_string end end private def message { method: @raw_request.method, path: @raw_request.path, content_type: @raw_request.content_type, body: reduced_version } end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
esplanade-1.3.0 | lib/esplanade/request/raw/body.rb |