Sha256: 8a3889a65ea6330d1b75d7b653931664605d6b04002dbdbe156b5a178a75afa6
Contents?: true
Size: 1.04 KB
Versions: 3
Compression:
Stored size: 1.04 KB
Contents
# frozen_string_literal: true module Dry module Configurable class Extension < Module # @api private attr_reader :config_class # @api private attr_reader :default_undefined # @api private def initialize(config_class: Configurable::Config, default_undefined: false) super() @config_class = config_class @default_undefined = default_undefined freeze end # @api private def extended(klass) super klass.extend(ClassMethods) klass.instance_variable_set(:@__config_extension__, self) end # @api private def included(klass) raise AlreadyIncludedError if klass.include?(InstanceMethods) super klass.class_eval do extend(ClassMethods) include(InstanceMethods) prepend(Initializer) class << self undef :config undef :configure end end klass.instance_variable_set(:@__config_extension__, self) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dry-configurable-1.1.0 | lib/dry/configurable/extension.rb |
dry-configurable-1.0.1 | lib/dry/configurable/extension.rb |
dry-configurable-1.0.0 | lib/dry/configurable/extension.rb |