lib/garcon/task/ivar.rb
# Add an observer on this object that will receive notification on update.
#
# Upon completion the `IVar` will notify all observers in a thread-safe way.
# The `func` method of the observer will be called with three arguments: the
# `Time` at which the `Future` completed the asynchronous operation, the
# final `value` (or `nil` on rejection), and the final `reason` (or `nil` on
# fulfillment).
#
# @param [Object] observer
#   The object that will be notified of changes.
#
# @param [Symbol] func
#   Symbol naming the method to call when the `Observable` has changes`
#
Add an observer on this object that will receive notification on update.
Upon completion the `IVar` will notify all observers in a thread-safe way.
Add an observer on this object that will receive notification on update . Upon completion the ` IVar ` will notify all observers in a thread - safe way .
def add_observer(bsrver = nil, func = :update, &block)
      if observer && block
        raise ArgumentError, 'cannot provide both an observer and a block'
      end
      direct_notification = false
      if block
        observer = block
        func     = :call
      end
      mutex.synchronize do
        if event.set?
          direct_notification = true
        else
          observers.add_observer(observer, func)
        end
      end
      observer.send(func, Time.now, self.value, reason) if direct_notification
      observer
    end
def add_observer ( bsrver = nil , func = :update , & block ) if observer && block raise ArgumentError , 'cannot provide both an observer and a block' end direct_notification = false if block observer = block func = :call end mutex . synchronize do if event . set? direct_notification = true else observers . add_observer ( observer , func ) end end observer . send ( func , Time . now , self . value , reason ) if direct_notification observer end
Add an observer on this object that will receive notification on update.
Add an observer on this object that will receive notification on update .
bsrver
<not_specific>
func
<not_specific>
block
<not_specific>
<not_specific>
func Symbol naming the method to call when the `Observable` has changes`
func Symbol naming the method to call when the ` Observable ` has changes `