Sha256: c0dda58d41b433223eb455f44f77d08743bd251f30eab49573d7a01256b8fcdd

Contents?: true

Size: 907 Bytes

Versions: 1

Compression:

Stored size: 907 Bytes

Contents

# frozen_string_literal: true

module Eventsimple
  class Configuration
    attr_reader :max_concurrency_retries, :dispatchers
    attr_writer :metadata_klass

    attr_accessor :ui_visible_models

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

      @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

    def metadata_klass
      @klass ||= @metadata_klass.constantize # rubocop:disable Naming/MemoizedInstanceVariableName
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
eventsimple-1.0.0 lib/eventsimple/configuration.rb