Sha256: 2fe7679b9f91a6b0b398125da64be1b9175e294a83d07c827dcebd71e60391e3

Contents?: true

Size: 1.29 KB

Versions: 75

Compression:

Stored size: 1.29 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")
        require 'yaml'
        @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

75 entries across 75 versions & 2 rubygems

Version Path
krates-1.7.11 lib/kontena/errors.rb
krates-1.7.10 lib/kontena/errors.rb
krates-1.7.9 lib/kontena/errors.rb
krates-1.7.8 lib/kontena/errors.rb
krates-1.7.7 lib/kontena/errors.rb
krates-1.7.6 lib/kontena/errors.rb
krates-1.7.5 lib/kontena/errors.rb
krates-1.7.4 lib/kontena/errors.rb
krates-1.7.3 lib/kontena/errors.rb
krates-1.7.2 lib/kontena/errors.rb
krates-1.7.1 lib/kontena/errors.rb
krates-1.7.0 lib/kontena/errors.rb
krates-1.6.9 lib/kontena/errors.rb
krates-1.6.8 lib/kontena/errors.rb
krates-1.6.7 lib/kontena/errors.rb
krates-1.6.6 lib/kontena/errors.rb
krates-1.6.5 lib/kontena/errors.rb
krates-1.6.4 lib/kontena/errors.rb
krates-1.6.3 lib/kontena/errors.rb
krates-1.6.2 lib/kontena/errors.rb