class NchanTools::Subscriber::Client

Attributes

concurrency[RW]

Public Class Methods

aliases() click to toggle source
# File lib/nchan_tools/pubsub.rb, line 281
def self.aliases
  []
end
inherited(subclass) click to toggle source
# File lib/nchan_tools/pubsub.rb, line 270
def self.inherited(subclass)
  @@inherited||=[]
  @@inherited << subclass
end
lookup(name) click to toggle source
# File lib/nchan_tools/pubsub.rb, line 275
def self.lookup(name)
  @@inherited.each do |klass|
    return klass if klass.aliases.include? name
  end
  nil
end
new(subscriber, arg={}) click to toggle source
# File lib/nchan_tools/pubsub.rb, line 392
def initialize(subscriber, arg={})
  @notready = 9000
  @cooked_ready=Celluloid::Condition.new
  @logger = arg[:logger]
end
unique_aliases() click to toggle source
# File lib/nchan_tools/pubsub.rb, line 285
def self.unique_aliases
  uniqs=[]
  @@inherited.each do |klass|
    uniqs << klass.aliases.first if klass.aliases.length > 0
  end
  uniqs
end

Public Instance Methods

error(code, msg, bundle=nil) click to toggle source
# File lib/nchan_tools/pubsub.rb, line 297
def error(code, msg, bundle=nil)
  err=ErrorResponse.new code, msg, bundle, @error_what, @error_failword
  err.caller=self
  err
end
handle_bundle_error(bundle, msg, err) click to toggle source
# File lib/nchan_tools/pubsub.rb, line 371
def handle_bundle_error(bundle, msg, err)
  if err && !(EOFError === err)
    msg="<#{msg}>\n#{err.backtrace.join "\n"}"
  end
  @subscriber.on_failure error(0, msg, bundle)
  @subscriber.finished+=1
  close bundle
end
poke(what=nil, timeout = nil) click to toggle source
# File lib/nchan_tools/pubsub.rb, line 380
def poke(what=nil, timeout = nil)
  begin
    if what == :ready
      (@notready.nil? || @notready > 0) && @cooked_ready.wait(timeout)
    else
      @connected > 0 && @cooked.wait(timeout)
    end
  rescue Celluloid::ConditionError => e
    #just ignore it
  end
end
provides_msgid?() click to toggle source
# File lib/nchan_tools/pubsub.rb, line 293
def provides_msgid?
  true
end
run() click to toggle source
# File lib/nchan_tools/pubsub.rb, line 398
def run
  raise SubscriberError, "Not Implemented"
end
stop(msg = "Stopped", src_bundle = nil) click to toggle source
# File lib/nchan_tools/pubsub.rb, line 402
def stop(msg = "Stopped", src_bundle = nil)
  @subscriber.on_failure error(0, msg, src_bundle)
  @logger.log :subscriber, :stop if @logger
end