Sha256: a8ac05ae4d710654e6f2a9a3ad616640fb7b9eb8245ea5e1bd021f08ba8f0362

Contents?: true

Size: 1.11 KB

Versions: 10

Compression:

Stored size: 1.11 KB

Contents

require "sentry-ruby"
require "sentry-rails"
require "govuk_app_config/govuk_statsd"
require "govuk_app_config/govuk_error/configuration"
require "govuk_app_config/version"

module GovukError
  class AlreadyInitialised < StandardError
    def initialize(msg = "You can only call GovukError.configure once!")
      super
    end
  end

  def self.notify(exception_or_message, args = {})
    # Allow users to use `parameters` as a key like the Airbrake
    # client, allowing easy upgrades.
    args[:extra] ||= {}
    args[:extra].merge!(parameters: args.delete(:parameters))

    args[:tags] ||= {}
    args[:tags][:govuk_app_config_version] = GovukAppConfig::VERSION

    if exception_or_message.is_a?(String)
      Sentry.capture_message(exception_or_message, args)
    else
      Sentry.capture_exception(exception_or_message, args)
    end
  end

  def self.is_configured?
    Sentry.get_current_client != nil
  end

  def self.configure
    raise GovukError::AlreadyInitialised if is_configured?

    Sentry.init do |sentry_config|
      config = Configuration.new(sentry_config)
      yield config if block_given?
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
govuk_app_config-4.4.3 lib/govuk_app_config/govuk_error.rb
govuk_app_config-4.4.2 lib/govuk_app_config/govuk_error.rb
govuk_app_config-4.4.1 lib/govuk_app_config/govuk_error.rb
govuk_app_config-4.4.0 lib/govuk_app_config/govuk_error.rb
govuk_app_config-4.3.0 lib/govuk_app_config/govuk_error.rb
govuk_app_config-4.2.0 lib/govuk_app_config/govuk_error.rb
govuk_app_config-4.1.0 lib/govuk_app_config/govuk_error.rb
govuk_app_config-4.0.1 lib/govuk_app_config/govuk_error.rb
govuk_app_config-4.0.0 lib/govuk_app_config/govuk_error.rb
govuk_app_config-4.0.0.pre.4 lib/govuk_app_config/govuk_error.rb