module SmartCore::Container::DefinitionDSL::ClassMethods
@api private @since 0.1.0
Public Instance Methods
compose(container_klass)
click to toggle source
@param container_klass [Class<SmartCore::Container>] @return [void]
@api public @since 0.1.0
# File lib/smart_core/container/definition_dsl.rb, line 92 def compose(container_klass) @__container_definition_lock__.thread_safe do __container_definition_commands__ << Commands::Definition::Compose.new( container_klass ) __container_instantiation_commands__ << Commands::Instantiation::Compose.new( container_klass ) end end
freeze_state!()
click to toggle source
@return [void]
@api public @since 0.1.0
# File lib/smart_core/container/definition_dsl.rb, line 108 def freeze_state! @__container_definition_lock__.thread_safe do __container_instantiation_commands__ << Commands::Instantiation::FreezeState.new end end
namespace(namespace_name, &dependencies_definition)
click to toggle source
@param namespace_name [String, Symbol] @param dependencies_definition [Block] @return [void]
@api public @since 0.1.0
# File lib/smart_core/container/definition_dsl.rb, line 55 def namespace(namespace_name, &dependencies_definition) @__container_definition_lock__.thread_safe do DependencyCompatability::Definition.prevent_dependency_overlap!(self, namespace_name) __container_definition_commands__ << Commands::Definition::Namespace.new( namespace_name, dependencies_definition ) end end
register( dependency_name, memoize: SmartCore::Container::Registry::DEFAULT_MEMOIZATION_BEHAVIOR, &dependency_definition )
click to toggle source
@param dependency_name [String, Symbol] @option memoize [Boolean] @param dependency_definition [Block] @return [void]
@api public @since 0.1.0 @version 0.3.0
# File lib/smart_core/container/definition_dsl.rb, line 73 def register( dependency_name, memoize: SmartCore::Container::Registry::DEFAULT_MEMOIZATION_BEHAVIOR, &dependency_definition ) @__container_definition_lock__.thread_safe do DependencyCompatability::Definition.prevent_namespace_overlap!(self, dependency_name) __container_definition_commands__ << Commands::Definition::Register.new( dependency_name, dependency_definition, memoize ) end end