class LittleBoxes::Entry
Attributes
block[RW]
box[RW]
configure[RW]
eager[RW]
memo[RW]
mutex[RW]
name[RW]
then_block[RW]
Public Class Methods
new(name:, eager:, memo:, box:, block:, configure:, then_block:)
click to toggle source
# File lib/little_boxes/entry.rb, line 5 def initialize(name:, eager:, memo:, box:, block:, configure:, then_block:) self.name = name self.memo = memo self.box = box self.eager = eager self.configure = configure self.then_block = then_block self.block = block self.mutex = Mutex.new if @memo end
Public Instance Methods
block=(block)
click to toggle source
# File lib/little_boxes/entry.rb, line 24 def block= block @block = Strategy.for( block, memo: @memo, configure: @configure, then_block: @then_block ) end
value()
click to toggle source
# File lib/little_boxes/entry.rb, line 16 def value if @memo @mutex.synchronize { @block.call(@box) } else @block.call(@box) end end