Sha256: 6e16bb29f9a30d0a39f71e1258a86bacc1b4617aa688485f4f0c110a18af36c8

Contents?: true

Size: 824 Bytes

Versions: 5

Compression:

Stored size: 824 Bytes

Contents

module Pheme
  class << self
    attr_writer :configuration
  end

  def self.configuration
    @configuration ||= Configuration.new
  end

  def self.configure
    yield(configuration)
  end

  def self.reset_configuration!
    @configuration = Configuration.new
  end

  class Configuration
    ATTRIBUTES = [:sns_client, :sqs_client, :logger, :rollbar]
    attr_accessor *ATTRIBUTES

    def initialize
      @logger ||= Logger.new(STDOUT)
    end

    def validate!
      ATTRIBUTES.each do |attribute|
        raise "Invalid or missing configuration for #{attribute}"  unless send(attribute).present?
      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
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
pheme-0.0.8 lib/pheme/configuration.rb
pheme-0.0.7 lib/pheme/configuration.rb
pheme-0.0.6 lib/pheme/configuration.rb
pheme-0.0.5 lib/pheme/configuration.rb
pheme-0.0.4 lib/pheme/configuration.rb