Sha256: 8b61cb3b7cd2166239d9cb3c7f697112852a87817bcb1c1023e29d046c007a6f
Contents?: true
Size: 1.13 KB
Versions: 2
Compression:
Stored size: 1.13 KB
Contents
module Propono class ProponoConfigurationError < ProponoError end class Configuration def self.add_setting(sym, required: true) define_method(sym) do required ? get_or_raise(sym) : @settings[sym] end define_method("#{sym}=") do |new_value| @settings[sym] = new_value end end add_setting :access_key add_setting :secret_key add_setting :queue_region add_setting :application_name add_setting :logger add_setting :max_retries add_setting :num_messages_per_poll add_setting :slow_queue_enabled, required: false add_setting :use_iam_profile, required: false add_setting :queue_suffix, required: false def initialize @settings = { logger: Propono::Logger.new, queue_suffix: "", use_iam_profile: false, max_retries: 0, num_messages_per_poll: 1, slow_queue_enabled: true } end private def get_or_raise(setting) @settings[setting] || raise(ProponoConfigurationError.new("Configuration for #{setting} is not set")) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
propono-2.2.1 | lib/propono/configuration.rb |
propono-2.2.0 | lib/propono/configuration.rb |