module SmartCore::Container::DefinitionDSL::ClassMethods

@api private @since 0.7.0

Public Instance Methods

compose(container_klass) click to toggle source

@param container_klass [Class<SmartCore::Container>] @return [void]

@api public @since 0.7.0

# File lib/smart_core/container/definition_dsl.rb, line 93
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.7.0

# File lib/smart_core/container/definition_dsl.rb, line 109
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.7.0

# File lib/smart_core/container/definition_dsl.rb, line 62
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, &dependency_definition) click to toggle source

@param dependency_name [String, Symbol] @param dependency_definition [Block] @return [void]

@api public @since 0.7.0

# File lib/smart_core/container/definition_dsl.rb, line 78
def register(dependency_name, &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
    )
  end
end