Sha256: e2fac89e79c08513ae943725b89d9beedbb8c37c1b055c3ea48dbf0eea37b89b
Contents?: true
Size: 1.91 KB
Versions: 3
Compression:
Stored size: 1.91 KB
Contents
module Octokit # Custom error class for rescuing from all GitHub errors class Error < StandardError def initialize(response=nil) @response = response super(build_error_message) end # private def response_body @response_body ||= if (body = @response[:body]) && !body.empty? if body.is_a?(String) serializer = Sawyer::Serializer.new(Sawyer::Serializer.any_json) serializer.decode(body) else body end else nil end end # private def build_error_message return nil if @response.nil? message = if response_body ": #{response_body['error'] || response_body['message'] || ''}" else '' end errors = unless message.empty? response_body['errors'] ? ": #{response_body['errors'].map{|e|e['message']}.join(', ')}" : '' end "#{@response[:method].to_s.upcase} #{@response[:url].to_s}: #{@response[:status]}#{message}#{errors}" end end # Raised when GitHub returns a 400 HTTP status code class BadRequest < Error; end # Raised when GitHub returns a 401 HTTP status code class Unauthorized < Error; end # Raised when GitHub returns a 403 HTTP status code class Forbidden < Error; end # Raised when GitHub returns a 404 HTTP status code class NotFound < Error; end # Raised when GitHub returns a 406 HTTP status code class NotAcceptable < Error; end # Raised when GitHub returns a 422 HTTP status code class UnprocessableEntity < Error; end # Raised when GitHub returns a 500 HTTP status code class InternalServerError < Error; end # Raised when GitHub returns a 501 HTTP status code class NotImplemented < Error; end # Raised when GitHub returns a 502 HTTP status code class BadGateway < Error; end # Raised when GitHub returns a 503 HTTP status code class ServiceUnavailable < Error; end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
octokit-2.0.0.rc2 | lib/octokit/error.rb |
octokit-2.0.0.rc1 | lib/octokit/error.rb |
octokit-2.0.0.pre | lib/octokit/error.rb |