class Dry::Configurable::Extension

def extended(klass)

Other tags:
    Api: - private
def extended(klass)
  super
  klass.extend(ClassMethods)
  klass.instance_variable_set(:@__config_extension__, self)
end

def included(klass)

Other tags:
    Api: - private
def included(klass)
  super
  klass.class_eval do
    extend(ClassMethods)
    include(InstanceMethods)
    prepend(Initializer)
    class << self
      undef :config if method_defined?(:config)
      undef :configure if method_defined?(:configure)
    end
  end
  klass.instance_variable_set(:@__config_extension__, self)
end

def initialize(config_class: Configurable::Config, default_undefined: false)

Other tags:
    Api: - private
def initialize(config_class: Configurable::Config, default_undefined: false)
  super()
  @config_class = config_class
  @default_undefined = default_undefined
  freeze
end