class Delayer::Deferred::Deferred

Public Class Methods

Thread() click to toggle source
# File lib/delayer/deferred/deferred.rb, line 14
def self.Thread
  @thread_class ||= gen_thread_class end
delayer() click to toggle source
# File lib/delayer/deferred/deferred.rb, line 23
def self.delayer
   ::Delayer end
gen_thread_class() click to toggle source
# File lib/delayer/deferred/deferred.rb, line 17
def self.gen_thread_class
  the_delayer = delayer
  Class.new(Thread) do
    define_singleton_method(:delayer) do
      the_delayer end end end
inherited(subclass) click to toggle source
# File lib/delayer/deferred/deferred.rb, line 10
def self.inherited(subclass)
  subclass.extend(::Delayer::Deferred)
end
new(follow = nil) click to toggle source
Calls superclass method
# File lib/delayer/deferred/deferred.rb, line 34
def initialize(follow = nil)
  super()
  @follow = follow
  @backtrace = caller if ::Delayer::Deferred.debug end
new(*args) click to toggle source
Calls superclass method
# File lib/delayer/deferred/deferred.rb, line 26
def self.new(*args)
  deferred = super(*args)
  if block_given?
    deferred.next(&Proc.new)
  else
    deferred end
end

Public Instance Methods

cancel() click to toggle source
# File lib/delayer/deferred/deferred.rb, line 40
def cancel
  deferredable_cancel
  @follow.cancel if @follow.is_a? Deferredable end
Also aliased as: deferredable_cancel
deferredable_cancel()
Alias for: cancel
inspect() click to toggle source
# File lib/delayer/deferred/deferred.rb, line 44
def inspect
  if ::Delayer::Deferred.debug
    sprintf("#<%s: %p %s follow:%p stat:%s value:%s>".freeze, self.class, object_id, @backtrace.find{|n|not n.include?("delayer/deferred".freeze)}, @follow ? @follow.object_id : 0, @next_call_stat.inspect, @next_call_value.inspect)
  else
    sprintf("#<%s: %p stat:%s value:%s>".freeze, self.class, object_id, @next_call_stat.inspect, @next_call_value.inspect)
  end
end