Sha256: 2f10b88cdcd7b345912d4892efd478eb2329d3d0d9286824af94947bfbe86f6e

Contents?: true

Size: 591 Bytes

Versions: 4

Compression:

Stored size: 591 Bytes

Contents

require 'faraday'
require 'hashie/mash'

module Plurky
  module Response
    class Mashify < Faraday::Response::Middleware

      def parse(body)
        case body
        when Hash
          Hashie::Mash.new body
        when Array
          body.map { |item| item.is_a?(Hash) ? Hashie::Mash.new(item) : item }
        else
          body
        end
      end

      # Overrides Faraday::Response::Middleware#on_complete
      def on_complete(env)
        unless [204, 301, 302, 304].include?(env[:status])
          env[:body] = parse(env[:body])
        end
      end

    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
plurky-0.1.3 lib/plurky/response/mashify.rb
plurky-0.1.2 lib/plurky/response/mashify.rb
plurky-0.1.1 lib/plurky/response/mashify.rb
plurky-0.1.0 lib/plurky/response/mashify.rb