Sha256: da83ed496775f227a35c4636f51a902a890f15417484533e3fef93cb18c0903e

Contents?: true

Size: 538 Bytes

Versions: 50

Compression:

Stored size: 538 Bytes

Contents

require 'faraday'
require 'multi_json'

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

      def parse(body)
        case body
        when ''
          nil
        when 'true'
          true
        when 'false'
          false
        else
          MultiJson.load(body, :symbolize_keys => true)
        end
      end

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

    end
  end
end

Version data entries

50 entries across 50 versions & 1 rubygems

Version Path
actv-2.10.9 lib/actv/response/parse_json.rb
actv-2.10.8 lib/actv/response/parse_json.rb
actv-2.10.7 lib/actv/response/parse_json.rb
actv-2.10.6 lib/actv/response/parse_json.rb
actv-2.10.5 lib/actv/response/parse_json.rb
actv-2.10.4 lib/actv/response/parse_json.rb
actv-2.10.3 lib/actv/response/parse_json.rb
actv-2.10.2 lib/actv/response/parse_json.rb
actv-2.10.1 lib/actv/response/parse_json.rb
actv-2.10.0 lib/actv/response/parse_json.rb
actv-2.9.2 lib/actv/response/parse_json.rb
actv-2.9.1 lib/actv/response/parse_json.rb
actv-2.9.0 lib/actv/response/parse_json.rb
actv-2.8.2 lib/actv/response/parse_json.rb
actv-2.8.1 lib/actv/response/parse_json.rb
actv-2.7.0 lib/actv/response/parse_json.rb
actv-2.6.0 lib/actv/response/parse_json.rb
actv-2.5.2 lib/actv/response/parse_json.rb
actv-2.5.1 lib/actv/response/parse_json.rb
actv-2.5.0 lib/actv/response/parse_json.rb