Sha256: f4b41fff3e9c1a342a125841f8790caeb65a9b3f055a2ee3f18fcb1c06af7824

Contents?: true

Size: 864 Bytes

Versions: 3

Compression:

Stored size: 864 Bytes

Contents

module CloudApp
  
  # Error raised on a bad response
  class ResponseError < StandardError
    
    attr_reader :response, :code, :errors
    
    # Instantiate an instance of CloudApp::ResponseError
    #
    # Only used internally
    #
    # @param [HTTParty::Response] res
    # @return [CloudApp::ResponseError]
    def initialize(res)
      @response = res.response
      @code     = res.code
      @errors   = parse_errors(res.parsed_response)
    end
    
    # Returns error code and message
    #
    # @return [String]
    def to_s
      "#{code.to_s} #{response.msg}".strip
    end
    
    private
    
    def parse_errors(errors)
      return case errors
        when Hash
           errors.collect{|k,v| "#{k}: #{v}"}
        when String
           [errors]
        when Array
           errors
        else []
      end
    end
    
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cloudapp_api-0.3.3 lib/cloudapp/response_error.rb
cloudapp_api-0.3.2 lib/cloudapp/response_error.rb
cloudapp_api-0.3.1 lib/cloudapp/response_error.rb