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