class WaterDrop::Config
Configuration object for setting up all options required by WaterDrop
Constants
- KAFKA_DEFAULTS
-
Defaults for kafka settings, that will be overwritten only if not present already
Public Instance Methods
Source
# File lib/waterdrop/config.rb, line 107 def setup configure do |config| yield(config) merge_kafka_defaults!(config) Contracts::Config.new.validate!(config.to_h, Errors::ConfigurationInvalidError) ::Rdkafka::Config.logger = config.logger end self end
Configuration method @yield Runs a block of code providing a config singleton instance to it @yieldparam [WaterDrop::Config] WaterDrop
config instance
Private Instance Methods
Source
# File lib/waterdrop/config.rb, line 127 def merge_kafka_defaults!(config) KAFKA_DEFAULTS.each do |key, value| next if config.kafka.key?(key) config.kafka[key] = value end end
Propagates the kafka setting defaults unless they are already present This makes it easier to set some values that users usually don’t change but still allows them to overwrite the whole hash if they want to @param config [Karafka::Core::Configurable::Node] config of this producer