Class: Pheme::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/pheme/configuration.rb

Constant Summary collapse

ATTRIBUTES =
%i[sns_client sqs_client logger].freeze
OPTIONAL_ATTRIBUTES =
%i[rollbar].freeze

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



24
25
26
27
# File 'lib/pheme/configuration.rb', line 24

def initialize
  @logger ||= Logger.new(STDOUT) # rubocop:disable Lint/DisjunctiveAssignmentInConstructor
  @logger = ActiveSupport::TaggedLogging.new(@logger) unless @logger.respond_to?(:tagged)
end

Instance Method Details

#validate!Object



29
30
31
32
33
34
35
# File 'lib/pheme/configuration.rb', line 29

def validate!
  ATTRIBUTES.each do |attribute|
    raise "Invalid or missing configuration for #{attribute}" if send(attribute).blank?
  end
  raise "sns_client must be a Aws::SNS::Client"  unless sns_client.is_a?(Aws::SNS::Client)
  raise "sns_client must be a Aws::SQS::Client"  unless sqs_client.is_a?(Aws::SQS::Client)
end