class ChiliLogger::MainBroker

class that configures and manages all supported brokers

Public Class Methods

new(broker_name, broker_config, logging_error_handler) click to toggle source
# File lib/brokers/main_broker.rb, line 8
def initialize(broker_name, broker_config, logging_error_handler)
  return if ChiliLogger.instance.deactivated

  @default = ChiliLogger::Values::Default.new
  @logging_error_handler = logging_error_handler
  broker_config ||= {}
  validate_config(broker_config)

  broker_name ||= @default.msg_broker
  broker_class = supported_brokers[broker_name.to_sym]
  unsupported_broker_error(broker_name) unless broker_class

  @broker = broker_class.new(broker_config)
end

Public Instance Methods

publish(message) click to toggle source
# File lib/brokers/main_broker.rb, line 23
def publish(message)
  return if ChiliLogger.instance.deactivated

  @broker.publish(message)
rescue StandardError => e
  @logging_error_handler.handle_error(e, message)
end

Private Instance Methods

supported_brokers() click to toggle source
# File lib/brokers/main_broker.rb, line 43
def supported_brokers
  {
    rabbitmq: RabbitBroker
  }
end
unsupported_broker_error(broker_name) click to toggle source
# File lib/brokers/main_broker.rb, line 38
def unsupported_broker_error(broker_name)
  err_msg = "'#{broker_name}' is not a supported broker_name. Supported broker_names: #{supported_brokers}"
  raise(ConfigError, err_msg)
end
validate_config(config) click to toggle source
# File lib/brokers/main_broker.rb, line 33
def validate_config(config)
  invalid_config_err = ':msg_broker_config must be a hash'
  raise(ChiliLogger::ConfigError, invalid_config_err) unless [Hash, NilClass].include?(config.class)
end