Sha256: 3242a5dc7fc6e272fad770d18ae77bcd9faed0bac0e69f1fffa7091949da56bb

Contents?: true

Size: 1014 Bytes

Versions: 9

Compression:

Stored size: 1014 Bytes

Contents

module Dry
  module System
    class AutoRegistrar
      # Default auto_registrar configuration
      #
      # This is currently configured by default for every System::Container.
      # Configuration allows to define custom initializtion logic as well
      # as exclusion, for each component that is been register by Dry::System
      # auto-registration.
      #
      # @api private
      class Configuration
        DEFAULT_INSTANCE = -> component { component.instance }.freeze
        FALSE_PROC = -> * { false }.freeze

        def self.setting(name)
          define_method(name) do |&block|
            ivar = "@#{name}"

            if block
              instance_variable_set(ivar, block)
            else
              instance_variable_get(ivar)
            end
          end
        end

        setting :exclude
        setting :instance

        # @api private
        def initialize
          @instance = DEFAULT_INSTANCE
          @exclude = FALSE_PROC
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
dry-system-0.9.2 lib/dry/system/auto_registrar/configuration.rb
dry-system-0.9.1 lib/dry/system/auto_registrar/configuration.rb
dry-system-0.9.0 lib/dry/system/auto_registrar/configuration.rb
dry-system-0.8.1 lib/dry/system/auto_registrar/configuration.rb
dry-system-0.8.0 lib/dry/system/auto_registrar/configuration.rb
dry-system-0.7.3 lib/dry/system/auto_registrar/configuration.rb
dry-system-0.7.2 lib/dry/system/auto_registrar/configuration.rb
dry-system-0.7.1 lib/dry/system/auto_registrar/configuration.rb
dry-system-0.7.0 lib/dry/system/auto_registrar/configuration.rb