class SmartCore::Injection::Locator::Dependency
@api private @since 0.1.0
Public Class Methods
new()
click to toggle source
@return [void]
@api private @since 0.1.0
# File lib/smart_core/injection/locator/dependency.rb, line 10 def initialize @binded = false @value = nil @barrier = SmartCore::Engine::Lock.new end
Public Instance Methods
bind() { || ... }
click to toggle source
@param block [Block] @return [Any]
@api public @since 0.7.0
# File lib/smart_core/injection/locator/dependency.rb, line 33 def bind(&block) with_barrier do if @binded @value else @binded = true @value = yield end end end
rebind(&block)
click to toggle source
@param block [Block] @return [Any]
@api private @since 0.1.0
# File lib/smart_core/injection/locator/dependency.rb, line 21 def rebind(&block) with_barrier do @binded = false bind(&block) end end
Private Instance Methods
with_barrier(&block)
click to toggle source
@param block [Block] @return [Any]
@api private @since 0.1.0
# File lib/smart_core/injection/locator/dependency.rb, line 51 def with_barrier(&block) @barrier.synchronize(&block) end