Sha256: 0474387f25505adf77acfcda8da900c8fadf5d31458a69c36e088e9908552721

Contents?: true

Size: 1003 Bytes

Versions: 3

Compression:

Stored size: 1003 Bytes

Contents

# frozen_string_literal: true

# External components
%w[
  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

3 entries across 3 versions & 1 rubygems

Version Path
waterdrop-1.3.1 lib/water_drop.rb
waterdrop-1.3.0 lib/water_drop.rb
waterdrop-1.3.0.rc1 lib/water_drop.rb