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
# 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 :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 }
end

Instance Method Details

#aws_optionsObject



25
26
27
28
29
30
31
# File 'lib/circuitry/config/shared_settings.rb', line 25

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

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

Yields:



19
20
21
22
23
# File 'lib/circuitry/config/shared_settings.rb', line 19

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

#validate_setting(value, permitted_values) ⇒ Object

Raises:



33
34
35
36
# File 'lib/circuitry/config/shared_settings.rb', line 33

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