Sha256: 8dd03d5a3ca3022834f9c6b46629a57698747557dd995cd49683437905c884c0

Contents?: true

Size: 493 Bytes

Versions: 10

Compression:

Stored size: 493 Bytes

Contents

require 'faraday'
require 'multi_json'

module Twitter
  module Response
    class ParseJson < Faraday::Response::Middleware

      def parse(body)
        case body
        when /\A^\s*$\z/, nil
          nil
        else
          MultiJson.load(body, :symbolize_keys => true)
        end
      end

      def on_complete(env)
        if respond_to?(:parse)
          env[:body] = parse(env[:body]) unless [204, 301, 302, 304].include?(env[:status])
        end
      end

    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
twitter-4.4.3 lib/twitter/response/parse_json.rb
twitter-4.4.2 lib/twitter/response/parse_json.rb
twitter-4.4.1 lib/twitter/response/parse_json.rb
twitter-4.4.0 lib/twitter/response/parse_json.rb
twitter-4.3.0 lib/twitter/response/parse_json.rb
twitter-4.2.0 lib/twitter/response/parse_json.rb
twitter-4.1.2 lib/twitter/response/parse_json.rb
twitter-4.1.1 lib/twitter/response/parse_json.rb
twitter-4.1.0 lib/twitter/response/parse_json.rb
twitter-4.0.0 lib/twitter/response/parse_json.rb