Sha256: ffbe4d842fd347bffd4ba3b12a560c43b88d6b2587af8fd5bf80dd7955de6910

Contents?: true

Size: 1.63 KB

Versions: 6

Compression:

Stored size: 1.63 KB

Contents

require 'json'
require 'percy/config'
require 'percy/client/environment'
require 'percy/client/connection'
require 'percy/client/version'
require 'percy/client/builds'
require 'percy/client/snapshots'
require 'percy/client/resources'

module Percy
  class Client
    include Percy::Client::Connection
    include Percy::Client::Builds
    include Percy::Client::Snapshots
    include Percy::Client::Resources

    class Error < RuntimeError; end
    class TimeoutError < Error; end
    class ConnectionFailed < Error; end
    class HttpError < Error
      attr_reader :status
      attr_reader :method
      attr_reader :url
      attr_reader :body

      def initialize(status, method, url, body, *args)
        @status = status
        @method = method
        @url = url
        @body = body
        super(*args)
      end
    end

    class ClientError < HttpError; end # 4xx;
    class BadRequestError < ClientError; end # 400.
    class UnauthorizedError < ClientError; end # 401.
    class PaymentRequiredError < ClientError; end # 402.
    class ForbiddenError < ClientError; end # 403.
    class NotFoundError < ClientError; end  # 404.
    class ConflictError < ClientError; end  # 409.

    class ServerError < HttpError; end # 5xx.
    class InternalServerError < ServerError; end # 500.
    class BadGatewayError < ServerError; end # 502.
    class ServiceUnavailableError < ServerError; end # 503.

    attr_reader :config, :client_info, :environment_info

    def initialize(options = {})
      @config = options[:config] || Percy::Config.new
      @client_info = options[:client_info]
      @environment_info = options[:environment_info]
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
percy-client-1.13.5 lib/percy/client.rb
percy-client-1.13.4 lib/percy/client.rb
percy-client-1.13.3 lib/percy/client.rb
percy-client-1.13.2 lib/percy/client.rb
percy-client-1.13.1 lib/percy/client.rb
percy-client-1.13.0 lib/percy/client.rb