Sha256: 889046821d3a3a8d601f83325a6234c31483199077c78d49f8841e0f8dc02596

Contents?: true

Size: 1.14 KB

Versions: 10

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

module Eventsimple
  class Configuration
    attr_reader :max_concurrency_retries
    attr_writer :metadata_klass
    attr_accessor :retry_reactor_on_record_not_found

    attr_accessor :ui_visible_models

    def initialize
      @dispatchers = []
      @max_concurrency_retries = 2
      @metadata_klass = 'Eventsimple::Metadata'
      @retry_reactor_on_record_not_found = false

      @ui_visible_models = [] # internal use only
    end

    def max_concurrency_retries=(value)
      unless value.is_a?(Integer) && value.positive?
        raise ArgumentError, 'max_concurrency_retries must be a positive integer'
      end

      @max_concurrency_retries = value
    end

    def dispatchers=(value)
      raise ArgumentError, 'dispatchers must be an array' unless value.is_a?(Array)

      @dispatchers = value
    end

    # rubocop:disable Naming/MemoizedInstanceVariableName
    def dispatchers
      @dispatchers_klass_consts ||= @dispatchers.map(&:constantize)
    end

    def metadata_klass
      @metadata_klass_const ||= @metadata_klass.constantize
    end
    # rubocop:enable Naming/MemoizedInstanceVariableName
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
eventsimple-1.3.2 lib/eventsimple/configuration.rb
eventsimple-1.3.1 lib/eventsimple/configuration.rb
eventsimple-1.3.0 lib/eventsimple/configuration.rb
eventsimple-1.2.3 lib/eventsimple/configuration.rb
eventsimple-1.2.2 lib/eventsimple/configuration.rb
eventsimple-1.2.1 lib/eventsimple/configuration.rb
eventsimple-1.2.0 lib/eventsimple/configuration.rb
eventsimple-1.1.3 lib/eventsimple/configuration.rb
eventsimple-1.1.2 lib/eventsimple/configuration.rb
eventsimple-1.1.1 lib/eventsimple/configuration.rb