lib/dry/configurable/methods.rb



# frozen_string_literal: true

require 'dry/configurable/errors'

module Dry
  module Configurable
    # Common API for both classes and instances
    #
    # @api public
    module Methods
      # @api public
      def configure(&block)
        raise FrozenConfig, 'Cannot modify frozen config' if frozen?

        yield(config) if block
        self
      end

      # Finalize and freeze configuration
      #
      # @return [Dry::Configurable::Config]
      #
      # @api public
      def finalize!
        return self if config.frozen?

        config.finalize!
        self
      end
    end
  end
end