Module: Circuitry::Config::SharedSettings

Included in:
PublisherSettings, SubscriberSettings
Defined in:
lib/circuitry/config/shared_settings.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/circuitry/config/shared_settings.rb', line 8

def self.included(base)
  base.attribute :access_key, String
  base.attribute :secret_key, String
  base.attribute :region, String, default: 'us-east-1'
  base.attribute :use_iam_profile, Virtus::Attribute::Boolean, default: false
  base.attribute :logger, Logger, default: Logger.new(STDERR)
  base.attribute :error_handler
  base.attribute :topic_names, Array[String], default: []
  base.attribute :on_async_exit
  base.attribute :async_strategy, Symbol, default: ->(_page, _att) { :fork }
  base.attribute :aws_options_overrides, Hash, default: {}
end

Instance Method Details

#aws_optionsObject



27
28
29
30
31
32
33
34
# File 'lib/circuitry/config/shared_settings.rb', line 27

def aws_options
  {
    access_key_id:     access_key,
    secret_access_key: secret_key,
    region:            region,
    **aws_options_overrides
  }
end

#middleware {|@middleware| ... } ⇒ Object

Yields:



21
22
23
24
25
# File 'lib/circuitry/config/shared_settings.rb', line 21

def middleware
  @middleware ||= Middleware::Chain.new
  yield @middleware if block_given?
  @middleware
end

#validate_setting(value, permitted_values) ⇒ Object

Raises:



36
37
38
39
# File 'lib/circuitry/config/shared_settings.rb', line 36

def validate_setting(value, permitted_values)
  return if permitted_values.include?(value)
  raise ConfigError, "invalid value `#{value}`, must be one of #{permitted_values.inspect}"
end