.yardoc/objects/root.dat in safubot-0.0.5 vs .yardoc/objects/root.dat in safubot-0.0.6
- old
+ new
@@ -1,6 +1,6 @@
-{q: rooto:"YARD::CodeObjects::RootObject:@childrenIC:&YARD::CodeObjects::CodeObjectList[o:$YARD::CodeObjects::ModuleObject;IC;[o:$YARD::CodeObjects::MethodObject:@scope:
+{s: rooto:"YARD::CodeObjects::RootObject:@childrenIC:&YARD::CodeObjects::CodeObjectList[o:$YARD::CodeObjects::ModuleObject;IC;[o:$YARD::CodeObjects::MethodObject:@scope:
class:@visibility:public:
@pathI"Safubot.mode:EF:@parameters[ :@files[[I"lib/safubot.rb;Ti:@current_file_has_commentsF:
@name: mode:@source_type: ruby:
@tags[ :@docstringIC:YARD::Docstring"(Returns the value of attribute mode;F:@object@
:
@summary0:@hash_flagF:@ref_tags[ ;[ : @allI"(Returns the value of attribute mode;F:@namespace@:@sourceI"def mode
@@ -13,83 +13,100 @@
param;F:
@textI",the value to set the attribute mode to.;F;I"
value;F:@types0;@;I"QSets the attribute mode
@param value the value to set the attribute mode to.;F; @;!I")def mode=(value)
@mode = value
-end;F;"I"def mode=(value);F;#0;$To;
-;:
instance;
;;I"Safubot#error_report;F;[["e0;[[I"lib/safubot/bot.rb;Ti;T;:error_report;;;[ ;IC;"8Pretty-printing of Exceptions and their backtraces.
;F;@);0;T;[ ;[o;&
+end;F;"I"def mode=(value);F;#0;$To; ;IC;[o;
+;;;
;;I"Safubot::Log.path;F;[ ;[[I"lib/safubot/log.rb;Ti;F;: path;;;[ ;IC;"(Returns the value of attribute path;F;@+;0;F;[ ;[ ;I"(Returns the value of attribute path;F; @);!I"def path
+ @path
+end;F;"I"
def path;F;#0;$To;
+;;;
;;I"Safubot::Log.path=;F;[["str0;[[@0i;T;:
+path=;;;[ ;IC;"1Commence logging to the specified file path.
;F;@8;0;F;[ ;[ ;I"1Commence logging to the specified file path.;F:@line_rangeo:
+Range: exclF:
+begini:endi; @);!I"Bdef path=(str)
+ @path = str
+ @filelog = Logger.new(str)
+end;F;"I"def path=(str);F;#0;$T:@explicitTo;
+;;;
;;I" Safubot::Log.method_missing;F;[["method0[I"
+*args;F0;[[@0i;T;:method_missing;;;[ ;IC;"-Dispatch method calls to Logger objects.
;F;@G;0;F;[ ;[ ;I"-Dispatch method calls to Logger objects.;F;,o;-;.F;/i;0i; @);!I"def method_missing(method, *args)
+ @stdlog ||= Logger.new(STDOUT)
+ @stdlog.send(method, *args)
+ @filelog.send(method, *args) if @filelog
+end;F;"I"&def method_missing(method, *args);F;#0;$T;1T:@owner@):@class_mixinsIC;[ ;3@):@instance_mixinsIC;[ ;3@):@attributesIC:SymbolHash{;IC;7{;*IC;7{: read@+:
+write@8:@symbolize_valueT;:T:
instanceIC;7{ ;:T;:T:
@aliases{ :@groups[ ;[[@0i
+;T;:Log;;;
;;[ ;IC;"JLog is a simple wrapper for stdout and file-writing Logger instances.
;F;@);0;F;[ ;[ ;I"JLog is a simple wrapper for stdout and file-writing Logger instances.;F;,o;-;.F;/i ;0i ; @;I"Safubot::Log;F;#0;$To;
+;;;;
;;I"Safubot#error_report;F;[["e0;[[I"lib/safubot/bot.rb;Ti;T;:error_report;;;[ ;IC;"8Pretty-printing of Exceptions and their backtraces.
;F;@i;0;T;[ ;[o;&
;'I"
-param;F;(I"An Exception to print.;F;I"e;F;)0;@);I"Y
+param;F;(I"An Exception to print.;F;I"e;F;)0;@i;I"Y
Pretty-printing of Exceptions and their backtraces.
-@param e An Exception to print.;F:@line_rangeo:
-Range: exclF:
-begini :endi; @;!I"Idef error_report(e)
+@param e An Exception to print.;F;,o;-;.F;/i ;0i; @;!I"Idef error_report(e)
"#{e.inspect}\n#{e.backtrace.join("\n\t")}"
-end;F;"I"def error_report(e);F;#0;$T:@explicitTo:#YARD::CodeObjects::ClassObject;IC;[ :@owner@=:@class_mixinsIC;[ ;3@=:@instance_mixinsIC;[o:YARD::CodeObjects::Proxy:
@imethod0:@origname""MongoMapper::EmbeddedDocument:@orignamespace@=;:EmbeddedDocument; o;6;70;80;90;:MongoMapper; @=: @obj0;<0;3@=:@attributesIC:SymbolHash{;IC;>{ :@symbolize_valueT;*IC;>{ ;?T;?T:
@aliases{ :@groups[ ;[[@0i;T;:Problem;;;
;;[ ;IC;"@An EmbeddedDocument for storing processing/dispatch errors.
;F;@=;0;F;[ ;[ ;I"A
-An EmbeddedDocument for storing processing/dispatch errors.;F;,o;-;.F;/i;0i; @;I"Safubot::Problem;F:@superclasso;6;70;80;90;:Object; @;<0;#0;$To; ;IC;[o;
-;;*;
;;I"%Safubot::Problematic#add_problem;F;[["e0;[[@0i ;T;:add_problem;;;[ ;IC;",Adds a timestamped Problem to the list.
;F;@U;0;T;[ ;[o;&
+end;F;"I"def error_report(e);F;#0;$T;1To:#YARD::CodeObjects::ClassObject;IC;[ ;3@};4IC;[ ;3@};5IC;[o:YARD::CodeObjects::Proxy:
@imethod0:@origname""MongoMapper::EmbeddedDocument:@orignamespace@};:EmbeddedDocument; o;A;B0;C0;D0;:MongoMapper; @}: @obj0;G0;3@};6IC;7{;IC;7{ ;:T;;IC;7{ ;:T;:T;<{ ;=[ ;[[@pi;T;:Problem;;;
;;[ ;IC;"@An EmbeddedDocument for storing processing/dispatch errors.
;F;@};0;F;[ ;[ ;I"A
+An EmbeddedDocument for storing processing/dispatch errors.;F;,o;-;.F;/i;0i; @;I"Safubot::Problem;F:@superclasso;A;B0;C0;D0;:Object; @;G0;#0;$To; ;IC;[o;
+;;;;
;;I"%Safubot::Problematic#add_problem;F;[["e0;[[@pi ;T;:add_problem;;;[ ;IC;",Adds a timestamped Problem to the list.
;F;@;0;T;[ ;[o;&
;'I"
-param;F;(I"1Exception from which the Problem is derived.;F;I"e;F;)0;@U;I"c
+param;F;(I"1Exception from which the Problem is derived.;F;I"e;F;)0;@;I"c
Adds a timestamped Problem to the list.
-@param e Exception from which the Problem is derived.;F;,o;-;.F;/i;0i; @S;!I"def add_problem(e)
+@param e Exception from which the Problem is derived.;F;,o;-;.F;/i;0i; @;!I"def add_problem(e)
problem = Problem.new(:error => e.to_s, :type => e.class.to_s,
:when => Time.now, :backtrace => e.backtrace)
self.problems.push(problem)
end;F;"I"def add_problem(e);F;#0;$T;1To;
-;;*;
;;I"&Safubot::Problematic#last_problem;F;[ ;[[@0i(;T;:last_problem;;;[ ;IC;"%Fetches the most recent Problem.
;F;@h;0;T;[ ;[ ;I"&
-Fetches the most recent Problem.;F;,o;-;.F;/i&;0i'; @S;!I"Odef last_problem
+;;;;
;;I"&Safubot::Problematic#last_problem;F;[ ;[[@pi(;T;:last_problem;;;[ ;IC;"%Fetches the most recent Problem.
;F;@;0;T;[ ;[ ;I"&
+Fetches the most recent Problem.;F;,o;-;.F;/i&;0i'; @;!I"Odef last_problem
self.problems.sort { |x,y| x.when <=> y.when }.last
-end;F;"I"def last_problem( );F;#0;$T;1T;3@S;4IC;[ ;3@S;5IC;[ ;3@S;=IC;>{;IC;>{ ;?T;*IC;>{ ;?T;?T;@{ ;A[ ;[[@0i;T;:Problematic;;;
;;[ ;IC;"%A mixin adding Problem handling.
;F;@S;0;T;[ ;[ ;I"&
-A mixin adding Problem handling.;F;,o;-;.F;/i;0i; @;I"Safubot::Problematic;F;#0;$To;2;IC;[ ;3@;4IC;[ ;3@;5IC;[o;6;70;80;90;;G; @;<@So;6;70;8"MongoMapper::Document;9@;:
Document; o;6;70;80;90;;;; @;<0;<0;3@;=IC;>{;IC;>{ ;?T;*IC;>{ ;?T;?T;@{ ;A[ ;[[@0i1[I"lib/safubot/xmpp.rb;Ti[I"lib/safubot/twitter.rb;Ti*;T;:Request;;;
;;[ ;IC;"wDefines elements of the input queue, agnostic of the transfer medium.
-May be extended by service-specific modules.
;F;@;0;T;[ ;[ ;I"x
+end;F;"I"def last_problem( );F;#0;$T;1T;3@;4IC;[ ;3@;5IC;[ ;3@;6IC;7{;IC;7{ ;:T;;IC;7{ ;:T;:T;<{ ;=[ ;[[@pi;T;:Problematic;;;
;;[ ;IC;"%A mixin adding Problem handling.
;F;@;0;T;[ ;[ ;I"&
+A mixin adding Problem handling.;F;,o;-;.F;/i;0i; @;I"Safubot::Problematic;F;#0;$To;@;IC;[ ;3@;4IC;[ ;3@;5IC;[o;A;B0;C0;D0;;M; @;G@o;A;B0;C"MongoMapper::Document;D@;:
Document; o;A;B0;C0;D0;;F; @;G0;G0;3@;6IC;7{;IC;7{ ;:T;;IC;7{ ;:T;:T;<{ ;=[ ;[[@pi1[I"lib/safubot/xmpp.rb;Ti[I"lib/safubot/twitter.rb;Ti*;T;:Request;;;
;;[ ;IC;"wDefines elements of the input queue, agnostic of the transfer medium.
+May be extended by service-specific modules.
;F;@;0;T;[ ;[ ;I"x
Defines elements of the input queue, agnostic of the transfer medium.
-May be extended by service-specific modules.;F;,o;-;.F;/i.;0i0; @;I"Safubot::Request;F;Co;6;70;80;90;;D; @;<0;#0;$To;2;IC;[ ;3@;4IC;[ ;3@;5IC;[o;6;70;80;90;;G; @;<@So;6;70;8"MongoMapper::Document;9@;;H; o;6;70;80;90;;;; @;<0;<0;3@;=IC;>{;IC;>{ ;?T;*IC;>{ ;?T;?T;@{ ;A[ ;[[@0iC;T;:
Response;;;
;;[ ;IC;"xDefines elements of the output queue, agnostic of the transfer medium.
-May be extended by service-specific modules.
;F;@;0;T;[ ;[ ;I"y
+May be extended by service-specific modules.;F;,o;-;.F;/i.;0i0; @;I"Safubot::Request;F;Io;A;B0;C0;D0;;J; @;G0;#0;$To;@;IC;[ ;3@;4IC;[ ;3@;5IC;[o;A;B0;C0;D0;;M; @;G@o;A;B0;C"MongoMapper::Document;D@;;N; o;A;B0;C0;D0;;F; @;G0;G0;3@;6IC;7{;IC;7{ ;:T;;IC;7{ ;:T;:T;<{ ;=[ ;[[@piC;T;:
Response;;;
;;[ ;IC;"xDefines elements of the output queue, agnostic of the transfer medium.
+May be extended by service-specific modules.
;F;@;0;T;[ ;[ ;I"y
Defines elements of the output queue, agnostic of the transfer medium.
-May be extended by service-specific modules.;F;,o;-;.F;/i@;0iB; @;I"Safubot::Response;F;Co;6;70;80;90;;D; @;<0;#0;$To;2;IC;[o;
-;;*;
;;I"Safubot::Bot#opts;F;[ ;[[@0iV;F;: opts;;;[ ;IC;"(Returns the value of attribute opts;F;@;0;F;[ ;[ ;I"(Returns the value of attribute opts;F; @;!I"def opts
+May be extended by service-specific modules.;F;,o;-;.F;/i@;0iB; @;I"Safubot::Response;F;Io;A;B0;C0;D0;;J; @;G0;#0;$To;@;IC;[o;
+;;;;
;;I"Safubot::Bot#opts;F;[ ;[[@piV;F;: opts;;;[ ;IC;"(Returns the value of attribute opts;F;@;0;F;[ ;[ ;I"(Returns the value of attribute opts;F; @;!I"def opts
@opts
end;F;"I"
def opts;F;#0;$To;
-;;*;
;;I"Safubot::Bot#twitter;F;[ ;[[@0iV;F;:twitter;;;[ ;IC;"+Returns the value of attribute twitter;F;@;0;F;[ ;[ ;I"+Returns the value of attribute twitter;F; @;!I"def twitter
+;;;;
;;I"Safubot::Bot#twitter;F;[ ;[[@piV;F;:twitter;;;[ ;IC;"+Returns the value of attribute twitter;F;@ ;0;F;[ ;[ ;I"+Returns the value of attribute twitter;F; @;!I"def twitter
@twitter
end;F;"I"def twitter;F;#0;$To;
-;;*;
;;I"Safubot::Bot#xmpp;F;[ ;[[@0iV;F;: xmpp;;;[ ;IC;"(Returns the value of attribute xmpp;F;@;0;F;[ ;[ ;I"(Returns the value of attribute xmpp;F; @;!I"def xmpp
+;;;;
;;I"Safubot::Bot#xmpp;F;[ ;[[@piV;F;: xmpp;;;[ ;IC;"(Returns the value of attribute xmpp;F;@;0;F;[ ;[ ;I"(Returns the value of attribute xmpp;F; @;!I"def xmpp
@xmpp
end;F;"I"
def xmpp;F;#0;$To;
-;;*;
;;I"Safubot::Bot#request_error;F;[["req0["e0;[[@0i\;T;:request_error;;;[ ;IC;"SRecords an error in processing and emits a corresponding :request_error event.
;F;@;0;T;[ ;[o;&
+;;;;
;;I"Safubot::Bot#subbots;F;[ ;[[@piV;F;:subbots;;;[ ;IC;"+Returns the value of attribute subbots;F;@;0;F;[ ;[ ;I"+Returns the value of attribute subbots;F; @;!I"def subbots
+ @subbots
+end;F;"I"def subbots;F;#0;$To;
+;;;;
;;I"Safubot::Bot#request_error;F;[["req0["e0;[[@pi\;T;:request_error;;;[ ;IC;"SRecords an error in processing and emits a corresponding :request_error event.
;F;@$;0;T;[ ;[o;&
;'I"
-param;F;(I"5The Request for which the error was encountered.;F;I"req;F;)0;@o;&
+param;F;(I"5The Request for which the error was encountered.;F;I"req;F;)0;@$o;&
;'I"
-param;F;(I"The caught Exception.;F;I"e;F;)0;@;I"
+param;F;(I"The caught Exception.;F;I"e;F;)0;@$;I"
Records an error in processing and emits a corresponding :request_error event.
@param req The Request for which the error was encountered.
-@param e The caught Exception.;F;,o;-;.F;/iX;0i[; @;!I"def request_error(req, e)
+@param e The caught Exception.;F;,o;-;.F;/iX;0i[; @;!I"def request_error(req, e)
Log.error "Error processing #{req.source.class} '#{req.text}': #{error_report(e)}"
req.add_problem(e)
req.save
emit(:request_error, req, e)
end;F;"I"def request_error(req, e);F;#0;$T;1To;
-;;*;
;;I" Safubot::Bot#dispatch_error;F;[[" resp0["e0;[[@0ig;T;:dispatch_error;;;[ ;IC;"RRecords an error in dispatch and emits a corresponding :dispatch_error event.
;F;@;0;T;[ ;[o;&
+;;;;
;;I" Safubot::Bot#dispatch_error;F;[[" resp0["e0;[[@pig;T;:dispatch_error;;;[ ;IC;"RRecords an error in dispatch and emits a corresponding :dispatch_error event.
;F;@=;0;T;[ ;[o;&
;'I"
-param;F;(I"6The Response for which the error was encountered.;F;I" resp;F;)0;@o;&
+param;F;(I"6The Response for which the error was encountered.;F;I" resp;F;)0;@=o;&
;'I"
-param;F;(I"The caught Exception.;F;I"e;F;)0;@;I"
+param;F;(I"The caught Exception.;F;I"e;F;)0;@=;I"
Records an error in dispatch and emits a corresponding :dispatch_error event.
@param resp The Response for which the error was encountered.
-@param e The caught Exception.;F;,o;-;.F;/ic;0if; @;!I"def dispatch_error(resp, e)
+@param e The caught Exception.;F;,o;-;.F;/ic;0if; @;!I"def dispatch_error(resp, e)
Log.error "Error dispatching #{resp.request.source.class} '#{resp.text}': #{error_report(e)}"
resp.add_problem(e)
resp.save
emit(:dispatch_error, resp, e)
end;F;"I" def dispatch_error(resp, e);F;#0;$T;1To;
-;;*;
;;I"!Safubot::Bot#process_request;F;[["req0;[[@0iq;T;:process_request;;;[ ;IC;"5Processes an individual request (synchronously).
;F;@
-;0;T;[ ;[o;&
+;;;;
;;I"!Safubot::Bot#process_request;F;[["req0;[[@piq;T;:process_request;;;[ ;IC;"5Processes an individual request (synchronously).
;F;@V;0;T;[ ;[o;&
;'I"
-param;F;(I"An unprocessed Request.;F;I"req;F;)0;@
-;I"Y
+param;F;(I"An unprocessed Request.;F;I"req;F;)0;@V;I"Y
Processes an individual request (synchronously).
-@param req An unprocessed Request.;F;,o;-;.F;/in;0ip; @;!I"def process_request(req)
+@param req An unprocessed Request.;F;,o;-;.F;/in;0ip; @;!I"def process_request(req)
req.reload
if req.processed
Log.debug "Request '#{req.text}' has already been processed, ignoring."
return
elsif req.processing
@@ -111,15 +128,15 @@
req.processed = true
req.save
#end
end
end;F;"I"def process_request(req);F;#0;$T;1To;
-;;*;
;;I"Safubot::Bot#dispatch;F;[[" resp0;[[@0i;T;:
dispatch;;;[ ;IC;"?Performs appropriate dispatch operation for response type.
;F;@;0;T;[ ;[o;&
+;;;;
;;I"Safubot::Bot#dispatch;F;[[" resp0;[[@pi;T;:
dispatch;;;[ ;IC;"?Performs appropriate dispatch operation for response type.
;F;@i;0;T;[ ;[o;&
;'I"
-param;F;(I"An undispatched Response.;F;I" resp;F;)0;@;I"f
+param;F;(I"An undispatched Response.;F;I" resp;F;)0;@i;I"f
Performs appropriate dispatch operation for response type.
-@param resp An undispatched Response.;F;,o;-;.F;/i;0i; @;!I"def dispatch(resp)
+@param resp An undispatched Response.;F;,o;-;.F;/i;0i; @;!I"def dispatch(resp)
resp.reload
if resp.dispatched
Log.debug "Response '#{resp.text}' has already been dispatched, ignoring."
return
elsif resp.dispatching
@@ -157,180 +174,165 @@
ensure
resp.dispatching = false
resp.save
end
end;F;"I"def dispatch(resp);F;#0;$T;1To;
-;;*;
;;I"Safubot::Bot#pull;F;[ ;[[@0i;T;: pull;;;[ ;IC;"^This pulls requests from passive non-streaming sources (currently, the Twitter AJAX API).
;F;@0;0;F;[ ;[ ;I"^This pulls requests from passive non-streaming sources (currently, the Twitter AJAX API).;F;,o;-;.F;/i;0i; @;!I"!def pull
- @twitter.pull
+;;;;
;;I"Safubot::Bot#pull;F;[ ;[[@pi;T;: pull;;;[ ;IC;"^This pulls requests from passive non-streaming sources (currently, the Twitter AJAX API).
;F;@|;0;F;[ ;[ ;I"^This pulls requests from passive non-streaming sources (currently, the Twitter AJAX API).;F;,o;-;.F;/i;0i; @;!I"-def pull
+ @twitter.pull if @twitter
end;F;"I"def pull( );F;#0;$T;1To;
-;;*;
;;I"Safubot::Bot#process;F;[ ;[[@0i;T;:process;;;[ ;IC;"IGoes through each unprocessed Request and submits it for processing.
;F;@=;0;F;[ ;[ ;I"IGoes through each unprocessed Request and submits it for processing.;F;,o;-;.F;/i;0i; @;!I"ydef process
+;;;;
;;I"Safubot::Bot#process;F;[ ;[[@pi;T;:process;;;[ ;IC;"IGoes through each unprocessed Request and submits it for processing.
;F;@;0;F;[ ;[ ;I"IGoes through each unprocessed Request and submits it for processing.;F;,o;-;.F;/i;0i; @;!I"ydef process
Request.where(:processed => false).each do |req|
concurrently(req) { process_request(req) }
end
end;F;"I"def process( );F;#0;$T;1To;
-;;*;
;;I"Safubot::Bot#respond;F;[["req0[" text0;[[@0i;T;:respond;;;[ ;IC;"4Adds a response to the queue and dispatches it.
;F;@J;0;T;[ ;[o;&
+;;;;
;;I"Safubot::Bot#respond;F;[["req0[" text0;[[@pi;T;:respond;;;[ ;IC;"4Adds a response to the queue and dispatches it.
;F;@;0;T;[ ;[o;&
;'I"
-param;F;(I"Request to respond to.;F;I"req;F;)0;@Jo;&
+param;F;(I"Request to respond to.;F;I"req;F;)0;@o;&
;'I"
-param;F;(I"Contents of the response.;F;I" text;F;)0;@J;I"}
+param;F;(I"Contents of the response.;F;I" text;F;)0;@;I"}
Adds a response to the queue and dispatches it.
@param req Request to respond to.
-@param text Contents of the response.;F;,o;-;.F;/i;0i; @;!I"def respond(req, text)
+@param text Contents of the response.;F;,o;-;.F;/i;0i; @;!I"def respond(req, text)
Log.info("#{req.user.name}: #{req.text}\nsafubot: #{text}")
dispatch(Response.create(:request => req, :text => text))
end;F;"I"def respond(req, text);F;#0;$T;1To;
-;;*;
;;I"Safubot::Bot#push;F;[ ;[[@0i;T;: push;;;[ ;IC;"+Dispatches all undispatched Responses.
;F;@c;0;F;[ ;[ ;I"+Dispatches all undispatched Responses.;F;,o;-;.F;/i;0i; @;!I"Qdef push
+;;;;
;;I"Safubot::Bot#push;F;[ ;[[@pi;T;: push;;;[ ;IC;"+Dispatches all undispatched Responses.
;F;@;0;F;[ ;[ ;I"+Dispatches all undispatched Responses.;F;,o;-;.F;/i;0i; @;!I"Qdef push
Response.where(:dispatched => false).each(&method(:dispatch))
end;F;"I"def push( );F;#0;$T;1To;
-;;*;
;;I"Safubot::Bot#concurrently;F;[["req0[I" &blk;F0;[[@0i;T;:concurrently;;;[ ;IC;"UWraps Thread.new with error handling and response pushing for the given request.
;F;@p;0;T;[ ;[o;&
+;;;;
;;I"Safubot::Bot#concurrently;F;[["req0[I" &blk;F0;[[@pi;T;:concurrently;;;[ ;IC;"UWraps Thread.new with error handling and response pushing for the given request.
;F;@;0;T;[ ;[o;&
;'I"
-param;F;(I"!The Request being processed.;F;I"req;F;)0;@po;&
+param;F;(I"!The Request being processed.;F;I"req;F;)0;@o;&
;'I"
-param;F;(I"8The operation to be performed in a separate thread.;F;I"blk;F;)0;@p;I"
+param;F;(I"8The operation to be performed in a separate thread.;F;I"blk;F;)0;@;I"
Wraps Thread.new with error handling and response pushing for the given request.
@param req The Request being processed.
-@param blk The operation to be performed in a separate thread.;F;,o;-;.F;/i;0i; @;!I"def concurrently(req, &blk)
+@param blk The operation to be performed in a separate thread.;F;,o;-;.F;/i;0i; @;!I"def concurrently(req, &blk)
Thread.new do
begin
blk.call
rescue Exception => e
request_error(req, e)
end
push
end
end;F;"I" def concurrently(req, &blk);F;#0;$T;1To;
-;;*;
;;I"Safubot::Bot#run_nowait;F;[ ;[[@0i;T;:run_nowait;;;[ ;IC;"TRuns an initial request-processing loop and then forks the streaming processes.
;F;@;0;F;[ ;[ ;I"TRuns an initial request-processing loop and then forks the streaming processes.;F;,o;-;.F;/i;0i; @;!I"]def run_nowait
+;;;;
;;I"Safubot::Bot#run;F;[ ;[[@pi;F;:run;;;[ ;IC;"