Sha256: e574a309c47642962892efa9a6278d748f648f3a0b2f3be563d14d6b22177d86

Contents?: true

Size: 1.08 KB

Versions: 8

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

# External components
# delegate should be removed because we don't need it, we just add it because of ruby-kafka
%w[
  delegate
  json
  delivery_boy
  singleton
  dry-configurable
  dry/monitor/notifications
  dry-validation
  zeitwerk
].each { |lib| require lib }

# WaterDrop library
module WaterDrop
  class << self
    attr_accessor :logger

    # Sets up the whole configuration
    # @param [Block] block configuration block
    def setup(&block)
      Config.setup(&block)
      DeliveryBoy.logger = self.logger = config.logger
      ConfigApplier.call(DeliveryBoy.config, Config.config.to_h)
    end

    # @return [WaterDrop::Config] config instance
    def config
      Config.config
    end

    # @return [::WaterDrop::Monitor] monitor that we want to use
    def monitor
      config.monitor
    end

    # @return [String] root path of this gem
    def gem_root
      Pathname.new(File.expand_path('..', __dir__))
    end
  end
end

Zeitwerk::Loader
  .for_gem
  .tap { |loader| loader.ignore("#{__dir__}/waterdrop.rb") }
  .tap(&:setup)
  .tap(&:eager_load)

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
waterdrop-1.4.4 lib/water_drop.rb
waterdrop-1.4.3 lib/water_drop.rb
waterdrop-1.4.2 lib/water_drop.rb
waterdrop-1.4.1 lib/water_drop.rb
waterdrop-1.4.0 lib/water_drop.rb
waterdrop-1.3.4 lib/water_drop.rb
waterdrop-1.3.3 lib/water_drop.rb
waterdrop-1.3.2 lib/water_drop.rb