class SmartCore::Container::Entities::Namespace
@api private @since 0.7.0
Attributes
container_klass[R]
@return [Class<SmartCore::Container>]
@api private @since 0.7.0
Public Class Methods
new(namespace_name)
click to toggle source
@param namespace_name [String] @return [void]
@api private @since 0.7.0
Calls superclass method
SmartCore::Container::Entities::Base::new
# File lib/smart_core/container/entities/namespace.rb, line 17 def initialize(namespace_name) super(namespace_name) @container_klass = Class.new(SmartCore::Container) @container_instance = nil @lock = SmartCore::Container::ArbitaryLock.new end
Public Instance Methods
append_definitions(dependencies_definition)
click to toggle source
@param dependencies_definition [Proc] @return [void]
@api private @since 0.7.0
# File lib/smart_core/container/entities/namespace.rb, line 37 def append_definitions(dependencies_definition) thread_safe { container_klass.instance_eval(&dependencies_definition) } end
freeze!()
click to toggle source
@return [void]
@api private @since 0.7.0
# File lib/smart_core/container/entities/namespace.rb, line 45 def freeze! thread_safe { container_instance.freeze! } end
reveal()
click to toggle source
@return [SmartCore::Container]
@api private @since 0.8.0
# File lib/smart_core/container/entities/namespace.rb, line 28 def reveal thread_safe { container_instance } end
Private Instance Methods
container_instance()
click to toggle source
@return [SmartCore::Container]
@api private @since 0.7.0
# File lib/smart_core/container/entities/namespace.rb, line 61 def container_instance @container_instance ||= container_klass.new end
thread_safe(&block)
click to toggle source
@param block [Block] @return [Any]
@api private @since 0.7.0
# File lib/smart_core/container/entities/namespace.rb, line 70 def thread_safe(&block) @lock.thread_safe(&block) end