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