Sha256: a0ff60d4bd5acacb5c3ae536aa62d3bd027062d0320f6709e8c02f11e82cfa7a
Contents?: true
Size: 829 Bytes
Versions: 2
Compression:
Stored size: 829 Bytes
Contents
require 'multi_json' class Zeppelin module Middleware # Middleware for Faraday that parses JSON response bodies. Based on code in # the FaradayMiddleware project. # # @private class JsonParser < Faraday::Middleware CONTENT_TYPE = 'Content-Type' def initialize(app=nil) @app = app end def call(env) @app.call(env).on_complete do parse_response(env) if process_content_type?(env) && parse_response?(env) end end private def parse_response(env) env[:body] = MultiJson.decode(env[:body]) end def process_content_type?(env) env[:response_headers][CONTENT_TYPE].to_s =~ /application\/(.*)json/ end def parse_response?(env) env[:body].respond_to? :to_str end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
zeppelin-0.8.1 | lib/zeppelin/middleware/json_parser.rb |
zeppelin-0.7.0 | lib/zeppelin/middleware/json_parser.rb |