class Eventboss::Configuration

Constants

OPTS_ALLOWED_IN_CONFIG_FILE

Attributes

aws_access_key_id[W]
aws_secret_access_key[W]
aws_sns_endpoint[W]
aws_sqs_endpoint[W]
concurrency[W]
error_handlers[W]
eventboss_account_id[W]
eventboss_app_name[W]
eventboss_region[W]
listeners[W]
log_level[W]
logger[W]
raise_on_missing_configuration[W]
sns_client[W]
sns_sqs_name_infix[W]
sqs_client[W]

Public Instance Methods

aws_access_key_id() click to toggle source
# File lib/eventboss/configuration.rb, line 91
def aws_access_key_id
  defined_or_default('aws_access_key_id') { ENV['AWS_ACCESS_KEY_ID'] }
end
aws_secret_access_key() click to toggle source
# File lib/eventboss/configuration.rb, line 95
def aws_secret_access_key
  defined_or_default('aws_secret_access_key') { ENV['AWS_SECRET_ACCESS_KEY'] }
end
aws_sns_endpoint() click to toggle source
# File lib/eventboss/configuration.rb, line 103
def aws_sns_endpoint
  defined_or_default('aws_sns_endpoint') { ENV['AWS_SNS_ENDPOINT'] }
end
aws_sqs_endpoint() click to toggle source
# File lib/eventboss/configuration.rb, line 99
def aws_sqs_endpoint
  defined_or_default('aws_sqs_endpoint') { ENV['AWS_SQS_ENDPOINT'] }
end
concurrency() click to toggle source
# File lib/eventboss/configuration.rb, line 41
def concurrency
  defined_or_default('concurrency') do
    concurrency = ENV['EVENTBOSS_CONCURRENCY'] || ENV['EVENTBUS_CONCURRENCY']
    concurrency ? concurrency.to_i : 25
  end
end
development_mode?() click to toggle source
# File lib/eventboss/configuration.rb, line 115
def development_mode?
  defined_or_default('development_mode') do
    (ENV['EVENTBOSS_DEVELOPMENT_MODE']&.downcase || ENV['EVENTBUS_DEVELOPMENT_MODE'])&.downcase == 'true'
  end
end
error_handlers() click to toggle source
# File lib/eventboss/configuration.rb, line 32
def error_handlers
  defined_or_default('error_handlers') do
    [ErrorHandlers::Logger.new, ErrorHandlers::NonExistentQueueHandler.new].tap do |handlers|
      handlers << ErrorHandlers::DbConnectionDropHandler.new if defined?(::ActiveRecord::StatementInvalid)
      handlers << ErrorHandlers::DbConnectionNotEstablishedHandler.new if defined?(::ActiveRecord::ConnectionNotEstablished)
    end
  end
end
eventboss_account_id() click to toggle source
# File lib/eventboss/configuration.rb, line 87
def eventboss_account_id
  defined_or_default('eventboss_account_id') { ENV['EVENTBOSS_ACCOUNT_ID'] || ENV['EVENTBUS_ACCOUNT_ID'] }
end
eventboss_app_name() click to toggle source
# File lib/eventboss/configuration.rb, line 83
def eventboss_app_name
  defined_or_default('eventboss_app_name') { ENV['EVENTBOSS_APP_NAME'] || ENV['EVENTBUS_APP_NAME'] }
end
eventboss_region() click to toggle source
# File lib/eventboss/configuration.rb, line 79
def eventboss_region
  defined_or_default('eventboss_region') { ENV['EVENTBOSS_REGION'] || ENV['EVENTBUS_REGION'] }
end
listeners() click to toggle source
# File lib/eventboss/configuration.rb, line 111
def listeners
  defined_or_default('listeners') { {} }
end
log_level() click to toggle source
# File lib/eventboss/configuration.rb, line 48
def log_level
  defined_or_default('log_level') { :info }
end
logger() click to toggle source
# File lib/eventboss/configuration.rb, line 52
def logger
  defined_or_default('logger') do
    ::Logger.new(STDOUT, level: Eventboss.configuration.log_level)
  end
end
raise_on_missing_configuration() click to toggle source
# File lib/eventboss/configuration.rb, line 28
def raise_on_missing_configuration
  defined_or_default('raise_on_missing_configuration') { (ENV['EVENTBOSS_RAISE_ON_MISSING_CONFIGURATION'] || ENV['EVENTBUS_RAISE_ON_MISSING_CONFIGURATION'])&.downcase == 'true' }
end
server_middleware() click to toggle source
# File lib/eventboss/configuration.rb, line 121
def server_middleware
  @server_middleware ||= Middleware::Chain.new
end
sns_client() click to toggle source
# File lib/eventboss/configuration.rb, line 58
def sns_client
  defined_or_default('sns_client') { Eventboss::SnsClient.new(self) }
end
sns_sqs_name_infix() click to toggle source
# File lib/eventboss/configuration.rb, line 107
def sns_sqs_name_infix
  defined_or_default('sns_sqs_name_infix') { ENV['EVENTBOSS_SQS_SNS_NAME_INFIX'] || ENV['EVENTBUS_SQS_SNS_NAME_INFIX'] || 'eventboss' }
end
sqs_client() click to toggle source
# File lib/eventboss/configuration.rb, line 62
def sqs_client
  defined_or_default('sqs_client') do
    options = {
      region: eventboss_region,
      credentials: Aws::Credentials.new(
        aws_access_key_id,
        aws_secret_access_key
      )
    }
    if aws_sqs_endpoint
      options[:endpoint] = aws_sqs_endpoint
    end

    Aws::SQS::Client.new(options)
  end
end

Private Instance Methods

defined_or_default(variable_name) { || ... } click to toggle source
# File lib/eventboss/configuration.rb, line 127
def defined_or_default(variable_name)
  if instance_variable_defined?("@#{variable_name}")
    instance_variable_get("@#{variable_name}")
  else
    instance_variable_set("@#{variable_name}", yield) if block_given?
  end
end