Sha256: 8877e9c477bee1caa32e4b23d3b891208c052202fbc0789960332e189e89107b

Contents?: true

Size: 1.26 KB

Versions: 14

Compression:

Stored size: 1.26 KB

Contents

module Kontena
  module Errors
    class StandardError < ::StandardError

      attr_reader :status

      # @param status [Fixnum] HTTP response status
      # @param message [String] short error message
      def initialize(status, message)
        @status = status
        super(message)
      end
    end

    # The normal {error: {foo: "invalid foo"}} error response format used by the API
    class StandardErrorHash < StandardError
      attr_reader :errors

      # @param errors [Hash]
      def initialize(status, message, errors)
        super(status, message)
        @errors = errors
      end

      # Render as indented YAML
      def errors_message(indent: "\t")
        @errors.to_yaml.lines[1..-1].map{|line| "#{indent}#{line}" }.join
      end

      # Render the full multi-line message including YAML-formatted errors
      def message
        "#{super}:\n#{errors_message}"
      end
    end

    # An error with an array of additional details
    class StandardErrorArray < Kontena::Errors::StandardError
      # @param details [Array<String>]
      def initialize(status, message, details)
        super(status, message)
        @details = details
      end

      def message
        "#{super}:\n#{@details.map{|msg| "\t" + msg}.join("\n")}"
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
kontena-cli-1.3.0.rc1 lib/kontena/errors.rb
kontena-cli-1.3.0.pre2 lib/kontena/errors.rb
kontena-cli-1.3.0.pre1 lib/kontena/errors.rb
kontena-cli-1.2.2 lib/kontena/errors.rb
kontena-cli-1.2.2.rc2 lib/kontena/errors.rb
kontena-cli-1.2.2.rc1 lib/kontena/errors.rb
kontena-cli-1.2.1 lib/kontena/errors.rb
kontena-cli-1.2.1.rc1 lib/kontena/errors.rb
kontena-cli-1.2.0 lib/kontena/errors.rb
kontena-cli-1.2.0.rc3 lib/kontena/errors.rb
kontena-cli-1.2.0.rc2 lib/kontena/errors.rb
kontena-cli-1.2.0.rc1 lib/kontena/errors.rb
kontena-cli-1.2.0.pre3 lib/kontena/errors.rb
kontena-cli-1.2.0.pre2 lib/kontena/errors.rb