Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
kiwi-errors / lib / kiwi / errors.rb
Size: Mime:
# frozen_string_literal: true

require 'kiwi/errors/version'
require 'kiwi/errors/handler'
require 'kiwi/errors/renderer'

module Kiwi
  # Kiwi Errors
  module Errors
    include Handler
    include Renderer
    # Error
    def logger
      @logger ||= SemanticLogger
    end

    class Error < StandardError; end

    # Api Error
    class ApiError < Error
      attr_reader :code, :status
      def initialize(message, code, status)
        super(message)
        @code = code
        @status = status
      end
    end

    def self.included(action)
      action.class_eval do
        handle_exception StandardError => :app_exception
      end
    end

    def app_exception(exception)
      logger.error exception
      api_errors(exception)
    end
  end
end