Sha256: 221fd5820c882cb2b3cb8ce1dd21aa73df8a83edd67efd4017aac004d2b6a13c

Contents?: true

Size: 836 Bytes

Versions: 2

Compression:

Stored size: 836 Bytes

Contents

# frozen_string_literal: true

module LightServiceExt
  class Configuration
    include ActiveSupport::Configurable

    config_accessor(:allow_raise_on_failure) { true }
    config_accessor(:non_fatal_error_classes) { [] }
    config_accessor(:default_non_fatal_error_classes) { ['Rails::ActiveRecordError'.safe_constantize] }
    config_accessor(:logger) { (defined? Rails.logger).nil? ? Logger.new($stdout) : Rails.logger }

    def allow_raise_on_failure?
      !!allow_raise_on_failure
    end

    def non_fatal_errors
      (default_non_fatal_error_classes + non_fatal_error_classes).compact.uniq.map(&:to_s).freeze
    end

    def fatal_error?(exception)
      !non_fatal_errors.exclude?(exception.class.name)
    end

    def non_fatal_error?(exception)
      non_fatal_errors.include?(exception.class.name)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
light-service-ext-0.1.8 lib/light-service-ext/configuration.rb
light-service-ext-0.1.5 lib/light-service-ext/configuration.rb