Module: WaterDrop
- Defined in:
- lib/water_drop.rb,
lib/water_drop/config.rb,
lib/water_drop/errors.rb,
lib/water_drop/version.rb,
lib/water_drop/base_producer.rb,
lib/water_drop/sync_producer.rb,
lib/water_drop/async_producer.rb,
lib/water_drop/schemas/config.rb,
lib/water_drop/instrumentation/monitor.rb,
lib/water_drop/schemas/message_options.rb,
lib/water_drop/instrumentation/listener.rb
Overview
WaterDrop library
Defined Under Namespace
Modules: Errors, Instrumentation, Schemas Classes: AsyncProducer, BaseProducer, Config, SyncProducer
Constant Summary collapse
- VERSION =
Current WaterDrop version
'1.2.1'
Class Attribute Summary collapse
-
.logger ⇒ Object
Returns the value of attribute logger.
Class Method Summary collapse
-
.config ⇒ WaterDrop::Config
Config instance.
-
.gem_root ⇒ String
Root path of this gem.
-
.monitor ⇒ ::WaterDrop::Monitor
Monitor that we want to use.
-
.setup(&block) ⇒ Object
Sets up the whole configuration.
Class Attribute Details
.logger ⇒ Object
Returns the value of attribute logger.
20 21 22 |
# File 'lib/water_drop.rb', line 20 def logger @logger end |
Class Method Details
.config ⇒ WaterDrop::Config
Returns config instance.
45 46 47 |
# File 'lib/water_drop.rb', line 45 def config Config.config end |
.gem_root ⇒ String
Returns root path of this gem.
55 56 57 |
# File 'lib/water_drop.rb', line 55 def gem_root Pathname.new(File.('..', __dir__)) end |
.monitor ⇒ ::WaterDrop::Monitor
Returns monitor that we want to use.
50 51 52 |
# File 'lib/water_drop.rb', line 50 def monitor config.monitor end |
.setup(&block) ⇒ Object
Sets up the whole configuration
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/water_drop.rb', line 24 def setup(&block) Config.setup(&block) DeliveryBoy.logger = self.logger = config.logger # Recursive lambda for mapping config down to delivery boy applier = lambda { |db_config, h| h.each do |k, v| applier.call(db_config, v) && next if v.is_a?(Hash) next unless db_config.respond_to?(:"#{k}=") db_config.public_send(:"#{k}=", v) end } DeliveryBoy.config.tap do |config| config.brokers = Config.config.kafka.seed_brokers applier.call(config, Config.config.to_h) end end |