class SmartCore::Container::Entities::MemoizedDependency
@api private @since 0.2.0
Attributes
dependency_definition[R]
@return [Proc]
@api private @since 0.2.0
Public Class Methods
new(dependency_name, dependency_definition)
click to toggle source
@param dependency_name [String] @param dependency_definition
[Proc] @return [void]
@api private @since 0.2.0
Calls superclass method
SmartCore::Container::Entities::Dependency::new
# File lib/smart_core/container/entities/memoized_dependency.rb, line 13 def initialize(dependency_name, dependency_definition) super(dependency_name, dependency_definition) @lock = SmartCore::Container::ArbitraryLock.new end
Public Instance Methods
reveal(host_container = SmartCore::Container::NO_HOST_CONTAINER)
click to toggle source
@param host_container [SmartCore::Container, NilClass] @return [Any]
@api private @since 0.2.0 @version 0.8.1
# File lib/smart_core/container/entities/memoized_dependency.rb, line 24 def reveal(host_container = SmartCore::Container::NO_HOST_CONTAINER) @lock.thread_safe do unless instance_variable_defined?(:@revealed_dependency) @revealed_dependency = dependency_definition.call else @revealed_dependency end end end