Class: SmartCore::Container
- Inherits:
-
Object
- Object
- SmartCore::Container
show all
- Includes:
- DefinitionDSL
- Defined in:
- lib/smart_core/container.rb,
lib/smart_core/container/errors.rb,
lib/smart_core/container/definition_dsl.rb
Overview
Defined Under Namespace
Modules: DefinitionDSL, DependencyCompatability, DependencyResolver, Entities, KeyGuard, Mixin, RegistryBuilder
Classes: ArbitaryLock, Registry
Constant Summary
collapse
- Error =
Class.new(SmartCore::Error)
- ArgumentError =
Class.new(SmartCore::ArgumentError)
- IncompatibleEntityNameError =
Class.new(ArgumentError)
- FrozenRegistryError =
Class.new(SmartCore::FrozenError)
- NonexistentEntityError =
Class.new(Error)
- DependencyOverNamespaceOverlapError =
Class.new(Error)
- NamespaceOverDependencyOverlapError =
Class.new(Error)
Instance Method Summary
collapse
included
Constructor Details
#initialize ⇒ void
24
25
26
27
|
# File 'lib/smart_core/container.rb', line 24
def initialize
build_registry!
@access_lock = ArbitaryLock.new
end
|
Instance Method Details
#freeze! ⇒ void
This method returns an undefined value.
62
63
64
|
# File 'lib/smart_core/container.rb', line 62
def freeze!
thread_safe { registry.freeze! }
end
|
#frozen? ⇒ Boolean
70
71
72
|
# File 'lib/smart_core/container.rb', line 70
def frozen?
thread_safe { registry.frozen? }
end
|
#hash_tree(resolve_dependencies: false) ⇒ Hash<String|Symbol,SmartCore::Container::Entities::Base|Any>
Also known as:
to_h, to_hash
86
87
88
|
# File 'lib/smart_core/container.rb', line 86
def hash_tree(resolve_dependencies: false)
thread_safe { registry.hash_tree(resolve_dependencies: resolve_dependencies) }
end
|
#namespace(namespace_name, &dependencies_definition) ⇒ void
This method returns an undefined value.
45
46
47
|
# File 'lib/smart_core/container.rb', line 45
def namespace(namespace_name, &dependencies_definition)
thread_safe { registry.register_namespace(namespace_name, &dependencies_definition) }
end
|
#register(dependency_name, &dependency_definition) ⇒ void
This method returns an undefined value.
35
36
37
|
# File 'lib/smart_core/container.rb', line 35
def register(dependency_name, &dependency_definition)
thread_safe { registry.register_dependency(dependency_name, &dependency_definition) }
end
|
#reload! ⇒ void
This method returns an undefined value.
78
79
80
|
# File 'lib/smart_core/container.rb', line 78
def reload!
thread_safe { build_registry! }
end
|
#resolve(dependency_path) ⇒ Any
54
55
56
|
# File 'lib/smart_core/container.rb', line 54
def resolve(dependency_path)
thread_safe { DependencyResolver.resolve(registry, dependency_path) }
end
|