Class: Eventboss::Configuration

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

Constant Summary collapse

OPTS_ALLOWED_IN_CONFIG_FILE =
%i[
  concurrency
  sns_sqs_name_infix
  listeners
].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#aws_access_key_idObject



112
113
114
# File 'lib/eventboss/configuration.rb', line 112

def aws_access_key_id
  defined_or_default('aws_access_key_id') { ENV['AWS_ACCESS_KEY_ID'] }
end

#aws_container_authorization_token_fileObject



108
109
110
# File 'lib/eventboss/configuration.rb', line 108

def aws_container_authorization_token_file
  defined_or_default('aws_container_authorization_token_file') { ENV['AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE'] }
end

#aws_secret_access_keyObject



116
117
118
# File 'lib/eventboss/configuration.rb', line 116

def aws_secret_access_key
  defined_or_default('aws_secret_access_key') { ENV['AWS_SECRET_ACCESS_KEY'] }
end

#aws_session_tokenObject



120
121
122
# File 'lib/eventboss/configuration.rb', line 120

def aws_session_token
  defined_or_default('aws_session_token') { ENV['AWS_SESSION_TOKEN'] }
end

#aws_sns_endpointObject



128
129
130
# File 'lib/eventboss/configuration.rb', line 128

def aws_sns_endpoint
  defined_or_default('aws_sns_endpoint') { ENV['AWS_SNS_ENDPOINT'] }
end

#aws_sqs_endpointObject



124
125
126
# File 'lib/eventboss/configuration.rb', line 124

def aws_sqs_endpoint
  defined_or_default('aws_sqs_endpoint') { ENV['AWS_SQS_ENDPOINT'] }
end

#concurrencyObject



44
45
46
47
48
49
# File 'lib/eventboss/configuration.rb', line 44

def concurrency
  defined_or_default('concurrency') do
    concurrency = ENV['EVENTBOSS_CONCURRENCY'] || ENV['EVENTBUS_CONCURRENCY']
    concurrency ? concurrency.to_i : 25
  end
end

#error_handlersObject



35
36
37
38
39
40
41
42
# File 'lib/eventboss/configuration.rb', line 35

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_idObject



100
101
102
# File 'lib/eventboss/configuration.rb', line 100

def 
  defined_or_default('eventboss_account_id') { ENV['EVENTBOSS_ACCOUNT_ID'] || ENV['EVENTBUS_ACCOUNT_ID'] }
end

#eventboss_app_nameObject



96
97
98
# File 'lib/eventboss/configuration.rb', line 96

def eventboss_app_name
  defined_or_default('eventboss_app_name') { ENV['EVENTBOSS_APP_NAME'] || ENV['EVENTBUS_APP_NAME'] }
end

#eventboss_regionObject



92
93
94
# File 'lib/eventboss/configuration.rb', line 92

def eventboss_region
  defined_or_default('eventboss_region') { ENV['EVENTBOSS_REGION'] || ENV['EVENTBUS_REGION'] }
end

#eventboss_use_default_credentialsObject



104
105
106
# File 'lib/eventboss/configuration.rb', line 104

def eventboss_use_default_credentials
  defined_or_default('eventboss_use_default_credentials') { ENV['EVENTBOSS_USE_DEFAULT_CREDENTIALS'] == 'true' }
end

#listenersObject



136
137
138
# File 'lib/eventboss/configuration.rb', line 136

def listeners
  defined_or_default('listeners') { {} }
end

#log_levelObject



51
52
53
# File 'lib/eventboss/configuration.rb', line 51

def log_level
  defined_or_default('log_level') { :info }
end

#loggerObject



55
56
57
58
59
# File 'lib/eventboss/configuration.rb', line 55

def logger
  defined_or_default('logger') do
    ::Logger.new(STDOUT, level: Eventboss.configuration.log_level)
  end
end

#raise_on_missing_configurationObject



31
32
33
# File 'lib/eventboss/configuration.rb', line 31

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

#sns_clientObject



61
62
63
# File 'lib/eventboss/configuration.rb', line 61

def sns_client
  defined_or_default('sns_client') { Eventboss::SnsClient.new(self) }
end

#sns_sqs_name_infixObject



132
133
134
# File 'lib/eventboss/configuration.rb', line 132

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_clientObject



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/eventboss/configuration.rb', line 65

def sqs_client
  defined_or_default('sqs_client') do
    options = {
      region: eventboss_region,
    }

    unless eventboss_use_default_credentials
      options[:credentials] = credentials
    end

    if aws_sqs_endpoint
      options[:endpoint] = aws_sqs_endpoint
    end

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

Instance Method Details

#credentialsObject



83
84
85
86
87
88
89
90
# File 'lib/eventboss/configuration.rb', line 83

def credentials
  return Aws::Credentials.new(aws_access_key_id, aws_secret_access_key, aws_session_token) if development_mode?

  Aws::Credentials.new(
    aws_access_key_id,
    aws_secret_access_key
  )
end

#development_mode?Boolean

Returns:

  • (Boolean)


140
141
142
143
144
# File 'lib/eventboss/configuration.rb', line 140

def development_mode?
  defined_or_default('development_mode') do
    (ENV['EVENTBOSS_DEVELOPMENT_MODE']&.downcase || ENV['EVENTBUS_DEVELOPMENT_MODE'])&.downcase == 'true'
  end
end

#server_middlewareObject



146
147
148
# File 'lib/eventboss/configuration.rb', line 146

def server_middleware
  @server_middleware ||= Middleware::Chain.new
end