class Dry::Container::NamespaceDSL

@api private

Public Class Methods

new(container, namespace, namespace_separator) { |self| ... } click to toggle source

DSL for defining namespaces

@param [Dry::Container::Mixin] container

The container

@param [String] namespace

The namespace (name)

@param [String] namespace_separator

The namespace separator

@yield

The block to evaluate to define the namespace

@return [Mixed]

@api private

Calls superclass method
# File lib/dry/container/namespace_dsl.rb, line 21
def initialize(container, namespace, namespace_separator, &block)
  @namespace = namespace
  @namespace_separator = namespace_separator

  super(container)

  if block.arity.zero?
    instance_eval(&block)
  else
    yield self
  end
end

Public Instance Methods

import(namespace) click to toggle source
# File lib/dry/container/namespace_dsl.rb, line 42
def import(namespace)
  namespace(namespace.name, &namespace.block)

  self
end
namespace(namespace, &block) click to toggle source
Calls superclass method
# File lib/dry/container/namespace_dsl.rb, line 38
def namespace(namespace, &block)
  super(namespaced(namespace), &block)
end
register(key, *args, &block) click to toggle source
Calls superclass method
# File lib/dry/container/namespace_dsl.rb, line 34
def register(key, *args, &block)
  super(namespaced(key), *args, &block)
end
resolve(key) click to toggle source
Calls superclass method
# File lib/dry/container/namespace_dsl.rb, line 48
def resolve(key)
  super(namespaced(key))
end

Private Instance Methods

namespaced(key) click to toggle source
# File lib/dry/container/namespace_dsl.rb, line 54
def namespaced(key)
  [@namespace, key].join(@namespace_separator)
end