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 23 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 44 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 40 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 36 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 50 def resolve(key) super(namespaced(key)) end
Private Instance Methods
namespaced(key)
click to toggle source
# File lib/dry/container/namespace_dsl.rb, line 56 def namespaced(key) [@namespace, key].join(@namespace_separator) end