Sha256: 0f663980e1703adc98af71d155f6b803abd8840733136c4d5c057570fef99524

Contents?: true

Size: 585 Bytes

Versions: 10

Compression:

Stored size: 585 Bytes

Contents

module NxtRegistry
  class RecursiveRegistry < Registry
    def initialize(name, **options, &config)
      @level = options.fetch(:level) { 0 }

      @name = name
      @options = options
      @config = config

      super(name, **options, &config)
      set_nested_builder_as_default
    end

    attr_reader :name

    private

    attr_reader :options, :config, :level

    def set_nested_builder_as_default
      self.default = RegistryBuilder.new do
        RecursiveRegistry.new("level_#{(level + 1)}", **options.merge(level: (level + 1)), &config)
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
nxt_registry-0.3.10 lib/nxt_registry/recursive_registry.rb
nxt_registry-0.3.9 lib/nxt_registry/recursive_registry.rb
nxt_registry-0.3.8 lib/nxt_registry/recursive_registry.rb
nxt_registry-0.3.6 lib/nxt_registry/recursive_registry.rb
nxt_registry-0.3.5 lib/nxt_registry/recursive_registry.rb
nxt_registry-0.3.4 lib/nxt_registry/recursive_registry.rb
nxt_registry-0.3.3 lib/nxt_registry/recursive_registry.rb
nxt_registry-0.3.2 lib/nxt_registry/recursive_registry.rb
nxt_registry-0.3.1 lib/nxt_registry/recursive_registry.rb
nxt_registry-0.3.0 lib/nxt_registry/recursive_registry.rb