class FaradayJSON::ParseJsonMimeTypeFix
Public: Override the content-type of the response with “application/json” if the response body looks like it might be JSON, i.e. starts with an open bracket.
This is to fix responses from certain API providers that insist on serving JSON with wrong MIME-types such as “text/javascript”.
Constants
- BRACKETS
- MIME_TYPE
- WHITESPACE
Public Instance Methods
first_char(body)
click to toggle source
# File lib/faraday_json/parse_json.rb, line 152 def first_char(body) idx = -1 begin char = body[idx += 1] char = char.chr if char end while char and WHITESPACE.include? char char end
parse_response?(env)
click to toggle source
Calls superclass method
FaradayJSON::ParseJson#parse_response?
# File lib/faraday_json/parse_json.rb, line 148 def parse_response?(env) super and BRACKETS.include? first_char(env[:body]) end
process_response(env)
click to toggle source
# File lib/faraday_json/parse_json.rb, line 138 def process_response(env) old_type = env[:response_headers][CONTENT_TYPE].to_s new_type = MIME_TYPE.dup new_type << ';' << old_type.split(';', 2).last if old_type.index(';') env[:response_headers][CONTENT_TYPE] = new_type end