Sha256: 422fbccf25aeafe1dddd6812a932135f81ff890b1af8be076e34c46f46b3822f

Contents?: true

Size: 656 Bytes

Versions: 2

Compression:

Stored size: 656 Bytes

Contents

require 'json'
module Heracles
  module Wrapper
    DefaultErrorObject = Hash
    class RequestFailure < RuntimeError
      attr_reader :code, :errors, :response
      def initialize(response)
        @code = response.respond_to?(:code) ? response.code : 500
        begin
          @errors = response.respond_to?(:body) ?
            JSON.parse(response.body).fetch('errors',{}) :
            {}
        rescue JSON::ParserError
          @errors = {"response" => "Not JSON format; See response.body"}
        end
        @response = response
        super("code: #{@code}")
      end
    end
    class ConfigurationError < RuntimeError
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
heracles-wrapper-0.0.3 lib/heracles-wrapper/exceptions.rb
heracles-wrapper-0.0.2 lib/heracles-wrapper/exceptions.rb