safubot 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -77,7 +77,19 @@
77
77
  </dl>
78
78
  <div class="clear"></div>
79
79
 
80
- <h2>Defined Under Namespace</h2>
80
+ <h2>Overview</h2><div class="docstring">
81
+ <div class="discussion">
82
+ <p>
83
+ XMPP-specific functionality.
84
+ </p>
85
+
86
+
87
+ </div>
88
+ </div>
89
+ <div class="tags">
90
+
91
+
92
+ </div><h2>Defined Under Namespace</h2>
81
93
  <p class="children">
82
94
 
83
95
 
@@ -97,7 +109,7 @@
97
109
  </div>
98
110
 
99
111
  <div id="footer">
100
- Generated on Mon Nov 28 20:20:04 2011 by
112
+ Generated on Tue Nov 29 11:44:04 2011 by
101
113
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
102
114
  0.7.3 (ruby-1.9.2).
103
115
  </div>
@@ -169,6 +169,60 @@ Returns the value of attribute opts.
169
169
  </p>
170
170
  </div></span>
171
171
 
172
+ </li>
173
+
174
+
175
+ <li class="public ">
176
+ <span class="summary_signature">
177
+
178
+ <a href="#pid-instance_method" title="#pid (instance method)">- (Object) <strong>pid</strong> </a>
179
+
180
+
181
+
182
+ </span>
183
+
184
+
185
+ <span class="note title readonly">readonly</span>
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+ <span class="summary_desc"><div class='inline'><p>
195
+ Returns the value of attribute pid.
196
+ </p>
197
+ </div></span>
198
+
199
+ </li>
200
+
201
+
202
+ <li class="public ">
203
+ <span class="summary_signature">
204
+
205
+ <a href="#stream-instance_method" title="#stream (instance method)">- (Object) <strong>stream</strong> </a>
206
+
207
+
208
+
209
+ </span>
210
+
211
+
212
+ <span class="note title readonly">readonly</span>
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+ <span class="summary_desc"><div class='inline'><p>
222
+ Returns the value of attribute stream.
223
+ </p>
224
+ </div></span>
225
+
172
226
  </li>
173
227
 
174
228
 
@@ -284,6 +338,30 @@ Stores a tweet.
284
338
  </p>
285
339
  </div></span>
286
340
 
341
+ </li>
342
+
343
+
344
+ <li class="public ">
345
+ <span class="summary_signature">
346
+
347
+ <a href="#init_stream-instance_method" title="#init_stream (instance method)">- (Object) <strong>init_stream</strong> </a>
348
+
349
+
350
+
351
+ </span>
352
+
353
+
354
+
355
+
356
+
357
+
358
+
359
+
360
+ <span class="summary_desc"><div class='inline'><p>
361
+ Initializes the TweetStream client.
362
+ </p>
363
+ </div></span>
364
+
287
365
  </li>
288
366
 
289
367
 
@@ -403,7 +481,31 @@ Constructs the appropriate series of mentions for a reply to this tweet.
403
481
 
404
482
 
405
483
  <span class="summary_desc"><div class='inline'><p>
406
- Starts our TweetStream client running.
484
+ Starts our TweetStream client running in a new process.
485
+ </p>
486
+ </div></span>
487
+
488
+ </li>
489
+
490
+
491
+ <li class="public ">
492
+ <span class="summary_signature">
493
+
494
+ <a href="#run_stream-instance_method" title="#run_stream (instance method)">- (Object) <strong>run_stream</strong> </a>
495
+
496
+
497
+
498
+ </span>
499
+
500
+
501
+
502
+
503
+
504
+
505
+
506
+
507
+ <span class="summary_desc"><div class='inline'><p>
508
+ Runs the TweetStream client.
407
509
  </p>
408
510
  </div></span>
409
511
 
@@ -431,6 +533,30 @@ Sends a Twitter-sourced Response to the appropriate target.
431
533
  </p>
432
534
  </div></span>
433
535
 
536
+ </li>
537
+
538
+
539
+ <li class="public ">
540
+ <span class="summary_signature">
541
+
542
+ <a href="#stop-instance_method" title="#stop (instance method)">- (Object) <strong>stop</strong> </a>
543
+
544
+
545
+
546
+ </span>
547
+
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+ <span class="summary_desc"><div class='inline'><p>
556
+ Shut down the TweetStream client.
557
+ </p>
558
+ </div></span>
559
+
434
560
  </li>
435
561
 
436
562
 
@@ -476,21 +602,21 @@ Options are passed straight through to ::TweetStream and ::Twitter, but the
476
602
  <pre class="lines">
477
603
 
478
604
 
479
- 265
480
- 266
481
- 267
482
- 268
483
- 269
484
- 270
485
- 271
486
- 272
487
- 273
488
- 274
489
- 275
490
- 276</pre>
605
+ 283
606
+ 284
607
+ 285
608
+ 286
609
+ 287
610
+ 288
611
+ 289
612
+ 290
613
+ 291
614
+ 292
615
+ 293
616
+ 294</pre>
491
617
  </td>
492
618
  <td>
493
- <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 265</span>
619
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 283</span>
494
620
 
495
621
  <span class='kw'>def</span> <span class='id initialize'>initialize</span><span class='lparen'>(</span><span class='id options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
496
622
  <span class='id defaults'>defaults</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='symbol'>:username</span> <span class='op'>=&gt;</span> <span class='kw'>nil</span><span class='comma'>,</span>
@@ -542,12 +668,12 @@ Returns the value of attribute client
542
668
  <pre class="lines">
543
669
 
544
670
 
545
- 159
546
671
  160
547
- 161</pre>
672
+ 161
673
+ 162</pre>
548
674
  </td>
549
675
  <td>
550
- <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 159</span>
676
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 160</span>
551
677
 
552
678
  <span class='kw'>def</span> <span class='id client'>client</span>
553
679
  <span class='ivar'>@client</span>
@@ -585,12 +711,12 @@ Returns the value of attribute opts
585
711
  <pre class="lines">
586
712
 
587
713
 
588
- 159
589
714
  160
590
- 161</pre>
715
+ 161
716
+ 162</pre>
591
717
  </td>
592
718
  <td>
593
- <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 159</span>
719
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 160</span>
594
720
 
595
721
  <span class='kw'>def</span> <span class='id opts'>opts</span>
596
722
  <span class='ivar'>@opts</span>
@@ -601,6 +727,92 @@ Returns the value of attribute opts
601
727
  </div>
602
728
 
603
729
 
730
+ <span id=""></span>
731
+ <span id="pid-instance_method"></span>
732
+ <div class="method_details ">
733
+ <p class="signature " id="pid-instance_method">
734
+
735
+ - (<tt>Object</tt>) <strong>pid</strong> <span class="extras">(readonly)</span>
736
+
737
+
738
+
739
+ </p><div class="docstring">
740
+ <div class="discussion">
741
+ <p>
742
+ Returns the value of attribute pid
743
+ </p>
744
+
745
+
746
+ </div>
747
+ </div>
748
+ <div class="tags">
749
+
750
+
751
+ </div><table class="source_code">
752
+ <tr>
753
+ <td>
754
+ <pre class="lines">
755
+
756
+
757
+ 160
758
+ 161
759
+ 162</pre>
760
+ </td>
761
+ <td>
762
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 160</span>
763
+
764
+ <span class='kw'>def</span> <span class='id pid'>pid</span>
765
+ <span class='ivar'>@pid</span>
766
+ <span class='kw'>end</span></pre>
767
+ </td>
768
+ </tr>
769
+ </table>
770
+ </div>
771
+
772
+
773
+ <span id=""></span>
774
+ <span id="stream-instance_method"></span>
775
+ <div class="method_details ">
776
+ <p class="signature " id="stream-instance_method">
777
+
778
+ - (<tt>Object</tt>) <strong>stream</strong> <span class="extras">(readonly)</span>
779
+
780
+
781
+
782
+ </p><div class="docstring">
783
+ <div class="discussion">
784
+ <p>
785
+ Returns the value of attribute stream
786
+ </p>
787
+
788
+
789
+ </div>
790
+ </div>
791
+ <div class="tags">
792
+
793
+
794
+ </div><table class="source_code">
795
+ <tr>
796
+ <td>
797
+ <pre class="lines">
798
+
799
+
800
+ 160
801
+ 161
802
+ 162</pre>
803
+ </td>
804
+ <td>
805
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 160</span>
806
+
807
+ <span class='kw'>def</span> <span class='id stream'>stream</span>
808
+ <span class='ivar'>@stream</span>
809
+ <span class='kw'>end</span></pre>
810
+ </td>
811
+ </tr>
812
+ </table>
813
+ </div>
814
+
815
+
604
816
  <span id=""></span>
605
817
  <span id="username-instance_method"></span>
606
818
  <div class="method_details ">
@@ -628,12 +840,12 @@ Returns the value of attribute username
628
840
  <pre class="lines">
629
841
 
630
842
 
631
- 159
632
843
  160
633
- 161</pre>
844
+ 161
845
+ 162</pre>
634
846
  </td>
635
847
  <td>
636
- <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 159</span>
848
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 160</span>
637
849
 
638
850
  <span class='kw'>def</span> <span class='id username'>username</span>
639
851
  <span class='ivar'>@username</span>
@@ -675,13 +887,13 @@ Stores a DM and creates a matching Request as needed.
675
887
  <pre class="lines">
676
888
 
677
889
 
678
- 179
679
890
  180
680
891
  181
681
- 182</pre>
892
+ 182
893
+ 183</pre>
682
894
  </td>
683
895
  <td>
684
- <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 179</span>
896
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 180</span>
685
897
 
686
898
  <span class='kw'>def</span> <span class='id handle_message'>handle_message</span><span class='lparen'>(</span><span class='id message'>message</span><span class='rparen'>)</span>
687
899
  <span class='kw'>return</span> <span class='kw'>if</span> <span class='id message'>message</span><span class='period'>.</span><span class='id sender'>sender</span><span class='period'>.</span><span class='id screen_name'>screen_name</span> <span class='op'>==</span> <span class='ivar'>@username</span>
@@ -717,12 +929,12 @@ Emit a request event unless the request is already processed.
717
929
  <pre class="lines">
718
930
 
719
931
 
720
- 174
721
932
  175
722
- 176</pre>
933
+ 176
934
+ 177</pre>
723
935
  </td>
724
936
  <td>
725
- <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 174</span>
937
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 175</span>
726
938
 
727
939
  <span class='kw'>def</span> <span class='id handle_request'>handle_request</span><span class='lparen'>(</span><span class='id req'>req</span><span class='rparen'>)</span>
728
940
  <span class='id emit'>emit</span><span class='lparen'>(</span><span class='symbol'>:request</span><span class='comma'>,</span> <span class='id req'>req</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id req'>req</span><span class='period'>.</span><span class='id nil?'>nil?</span> <span class='op'>||</span> <span class='id req'>req</span><span class='period'>.</span><span class='id processed'>processed</span>
@@ -758,17 +970,17 @@ Otherwise, emit a :timeline event.
758
970
  <pre class="lines">
759
971
 
760
972
 
761
- 186
762
973
  187
763
974
  188
764
975
  189
765
976
  190
766
977
  191
767
978
  192
768
- 193</pre>
979
+ 193
980
+ 194</pre>
769
981
  </td>
770
982
  <td>
771
- <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 186</span>
983
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 187</span>
772
984
 
773
985
  <span class='kw'>def</span> <span class='id handle_tweet'>handle_tweet</span><span class='lparen'>(</span><span class='id status'>status</span><span class='rparen'>)</span>
774
986
  <span class='kw'>return</span> <span class='kw'>if</span> <span class='id status'>status</span><span class='period'>.</span><span class='id user'>user</span><span class='period'>.</span><span class='id screen_name'>screen_name</span> <span class='op'>==</span> <span class='ivar'>@username</span>
@@ -781,6 +993,80 @@ Otherwise, emit a :timeline event.
781
993
  </td>
782
994
  </tr>
783
995
  </table>
996
+ </div>
997
+
998
+ <div class="method_details ">
999
+ <p class="signature " id="init_stream-instance_method">
1000
+
1001
+ - (<tt>Object</tt>) <strong>init_stream</strong>
1002
+
1003
+
1004
+
1005
+ </p><div class="docstring">
1006
+ <div class="discussion">
1007
+ <p>
1008
+ Initializes the TweetStream client.
1009
+ </p>
1010
+
1011
+
1012
+ </div>
1013
+ </div>
1014
+ <div class="tags">
1015
+
1016
+
1017
+ </div><table class="source_code">
1018
+ <tr>
1019
+ <td>
1020
+ <pre class="lines">
1021
+
1022
+
1023
+ 227
1024
+ 228
1025
+ 229
1026
+ 230
1027
+ 231
1028
+ 232
1029
+ 233
1030
+ 234
1031
+ 235
1032
+ 236
1033
+ 237
1034
+ 238
1035
+ 239
1036
+ 240
1037
+ 241
1038
+ 242
1039
+ 243
1040
+ 244
1041
+ 245
1042
+ 246</pre>
1043
+ </td>
1044
+ <td>
1045
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 227</span>
1046
+
1047
+ <span class='kw'>def</span> <span class='id init_stream'>init_stream</span>
1048
+ <span class='ivar'>@stream</span> <span class='op'>=</span> <span class='const'>TweetStream</span><span class='op'>::</span><span class='const'>Client</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='ivar'>@opts</span><span class='rparen'>)</span>
1049
+
1050
+ <span class='ivar'>@stream</span><span class='period'>.</span><span class='id on_direct_message'>on_direct_message</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id message'>message</span><span class='op'>|</span>
1051
+ <span class='id req'>req</span> <span class='op'>=</span> <span class='id handle_message'>handle_message</span><span class='lparen'>(</span><span class='id message'>message</span><span class='rparen'>)</span>
1052
+ <span class='id handle_request'>handle_request</span><span class='lparen'>(</span><span class='id req'>req</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id req'>req</span><span class='period'>.</span><span class='id is_a?'>is_a?</span> <span class='const'>Request</span>
1053
+ <span class='kw'>end</span>
1054
+
1055
+ <span class='ivar'>@stream</span><span class='period'>.</span><span class='id on_error'>on_error</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id err'>err</span><span class='op'>|</span>
1056
+ <span class='kw'>if</span> <span class='id err'>err</span><span class='period'>.</span><span class='id match'>match</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>invalid status code: 401</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
1057
+ <span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>TweetStream authentication failure!</span><span class='tstring_end'>&quot;</span></span>
1058
+ <span class='kw'>else</span>
1059
+ <span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unhandled TweetStream error: </span><span class='embexpr_beg'>#{</span><span class='id error_report'>error_report</span><span class='lparen'>(</span><span class='gvar'>$!</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1060
+ <span class='kw'>end</span>
1061
+ <span class='kw'>end</span>
1062
+
1063
+ <span class='ivar'>@stream</span><span class='period'>.</span><span class='id on_inited'>on_inited</span> <span class='kw'>do</span>
1064
+ <span class='const'>Log</span><span class='period'>.</span><span class='id info'>info</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>TweetStream client is online at @</span><span class='embexpr_beg'>#{</span><span class='ivar'>@username</span><span class='rbrace'>}</span><span class='tstring_content'> :3</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1065
+ <span class='kw'>end</span>
1066
+ <span class='kw'>end</span></pre>
1067
+ </td>
1068
+ </tr>
1069
+ </table>
784
1070
  </div>
785
1071
 
786
1072
  <div class="method_details ">
@@ -810,7 +1096,6 @@ offline.
810
1096
  <pre class="lines">
811
1097
 
812
1098
 
813
- 209
814
1099
  210
815
1100
  211
816
1101
  212
@@ -824,10 +1109,11 @@ offline.
824
1109
  220
825
1110
  221
826
1111
  222
827
- 223</pre>
1112
+ 223
1113
+ 224</pre>
828
1114
  </td>
829
1115
  <td>
830
- <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 209</span>
1116
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 210</span>
831
1117
 
832
1118
  <span class='kw'>def</span> <span class='id pull'>pull</span>
833
1119
  <span class='kw'>begin</span>
@@ -841,7 +1127,7 @@ offline.
841
1127
  <span class='kw'>rescue</span> <span class='op'>::</span><span class='const'>Twitter</span><span class='op'>::</span><span class='const'>Error</span><span class='op'>::</span><span class='const'>ServiceUnavailable</span>
842
1128
  <span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Twitter: Couldn't pull tweets due to temporary service unavailability.</span><span class='tstring_end'>&quot;</span></span>
843
1129
  <span class='kw'>rescue</span> <span class='const'>Exception</span> <span class='op'>=&gt;</span> <span class='id e'>e</span>
844
- <span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Twitter: Unhandled error: </span><span class='embexpr_beg'>#{</span><span class='id e'>e</span><span class='rbrace'>}</span><span class='tstring_content'>\n</span><span class='embexpr_beg'>#{</span><span class='id e'>e</span><span class='period'>.</span><span class='id backtrace'>backtrace</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n\t</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1130
+ <span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Twitter: Unhandled error: </span><span class='embexpr_beg'>#{</span><span class='id error_report'>error_report</span><span class='lparen'>(</span><span class='id e'>e</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
845
1131
  <span class='kw'>end</span>
846
1132
  <span class='kw'>end</span></pre>
847
1133
  </td>
@@ -912,12 +1198,12 @@ The response text.
912
1198
  <pre class="lines">
913
1199
 
914
1200
 
915
- 203
916
1201
  204
917
- 205</pre>
1202
+ 205
1203
+ 206</pre>
918
1204
  </td>
919
1205
  <td>
920
- <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 203</span>
1206
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 204</span>
921
1207
 
922
1208
  <span class='kw'>def</span> <span class='id reply'>reply</span><span class='lparen'>(</span><span class='id tweet'>tweet</span><span class='comma'>,</span> <span class='id text'>text</span><span class='rparen'>)</span>
923
1209
  <span class='ivar'>@client</span><span class='period'>.</span><span class='id update'>update</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id reply_header'>reply_header</span><span class='lparen'>(</span><span class='id tweet'>tweet</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id text'>text</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:in_reply_to_status_id</span> <span class='op'>=&gt;</span> <span class='id tweet'>tweet</span><span class='period'>.</span><span class='id raw'>raw</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>id</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
@@ -952,12 +1238,12 @@ Constructs the appropriate series of mentions for a reply to this tweet.
952
1238
  <pre class="lines">
953
1239
 
954
1240
 
955
- 196
956
1241
  197
957
- 198</pre>
1242
+ 198
1243
+ 199</pre>
958
1244
  </td>
959
1245
  <td>
960
- <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 196</span>
1246
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 197</span>
961
1247
 
962
1248
  <span class='kw'>def</span> <span class='id reply_header'>reply_header</span><span class='lparen'>(</span><span class='id tweet'>tweet</span><span class='rparen'>)</span>
963
1249
  <span class='lparen'>(</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@</span><span class='embexpr_beg'>#{</span><span class='id tweet'>tweet</span><span class='period'>.</span><span class='id username'>username</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>+</span> <span class='lparen'>(</span><span class='id tweet'>tweet</span><span class='period'>.</span><span class='id header_mentions'>header_mentions</span> <span class='op'>-</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@</span><span class='embexpr_beg'>#{</span><span class='ivar'>@username</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id join'>join</span>
@@ -977,7 +1263,55 @@ Constructs the appropriate series of mentions for a reply to this tweet.
977
1263
  </p><div class="docstring">
978
1264
  <div class="discussion">
979
1265
  <p>
980
- Starts our TweetStream client running.
1266
+ Starts our TweetStream client running in a new process.
1267
+ </p>
1268
+
1269
+
1270
+ </div>
1271
+ </div>
1272
+ <div class="tags">
1273
+
1274
+
1275
+ </div><table class="source_code">
1276
+ <tr>
1277
+ <td>
1278
+ <pre class="lines">
1279
+
1280
+
1281
+ 267
1282
+ 268
1283
+ 269
1284
+ 270
1285
+ 271
1286
+ 272
1287
+ 273</pre>
1288
+ </td>
1289
+ <td>
1290
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 267</span>
1291
+
1292
+ <span class='kw'>def</span> <span class='id run'>run</span>
1293
+ <span class='ivar'>@pid</span> <span class='op'>=</span> <span class='const'>Process</span><span class='period'>.</span><span class='id fork'>fork</span> <span class='kw'>do</span>
1294
+ <span class='const'>Signal</span><span class='period'>.</span><span class='id trap'>trap</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>TERM</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='id stop'>stop</span> <span class='rbrace'>}</span>
1295
+ <span class='id init_stream'>init_stream</span>
1296
+ <span class='id run_stream'>run_stream</span>
1297
+ <span class='kw'>end</span>
1298
+ <span class='kw'>end</span></pre>
1299
+ </td>
1300
+ </tr>
1301
+ </table>
1302
+ </div>
1303
+
1304
+ <div class="method_details ">
1305
+ <p class="signature " id="run_stream-instance_method">
1306
+
1307
+ - (<tt>Object</tt>) <strong>run_stream</strong>
1308
+
1309
+
1310
+
1311
+ </p><div class="docstring">
1312
+ <div class="discussion">
1313
+ <p>
1314
+ Runs the TweetStream client.
981
1315
  </p>
982
1316
 
983
1317
 
@@ -992,29 +1326,6 @@ Starts our TweetStream client running.
992
1326
  <pre class="lines">
993
1327
 
994
1328
 
995
- 226
996
- 227
997
- 228
998
- 229
999
- 230
1000
- 231
1001
- 232
1002
- 233
1003
- 234
1004
- 235
1005
- 236
1006
- 237
1007
- 238
1008
- 239
1009
- 240
1010
- 241
1011
- 242
1012
- 243
1013
- 244
1014
- 245
1015
- 246
1016
- 247
1017
- 248
1018
1329
  249
1019
1330
  250
1020
1331
  251
@@ -1027,46 +1338,29 @@ Starts our TweetStream client running.
1027
1338
  258
1028
1339
  259
1029
1340
  260
1030
- 261</pre>
1341
+ 261
1342
+ 262
1343
+ 263
1344
+ 264</pre>
1031
1345
  </td>
1032
1346
  <td>
1033
- <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 226</span>
1034
-
1035
- <span class='kw'>def</span> <span class='id run'>run</span>
1036
- <span class='const'>Fiber</span><span class='period'>.</span><span class='id new'>new</span> <span class='kw'>do</span>
1037
- <span class='ivar'>@stream</span> <span class='op'>=</span> <span class='const'>TweetStream</span><span class='op'>::</span><span class='const'>Client</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='ivar'>@opts</span><span class='rparen'>)</span>
1038
-
1039
- <span class='ivar'>@stream</span><span class='period'>.</span><span class='id on_direct_message'>on_direct_message</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id message'>message</span><span class='op'>|</span>
1040
- <span class='id dm'>dm</span> <span class='op'>=</span> <span class='id handle_message'>handle_message</span><span class='lparen'>(</span><span class='id message'>message</span><span class='rparen'>)</span>
1041
- <span class='id handle_request'>handle_request</span><span class='lparen'>(</span><span class='id dm'>dm</span><span class='period'>.</span><span class='id request'>request</span><span class='rparen'>)</span>
1042
- <span class='kw'>end</span>
1347
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 249</span>
1043
1348
 
1044
- <span class='ivar'>@stream</span><span class='period'>.</span><span class='id on_error'>on_error</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id err'>err</span><span class='op'>|</span>
1045
- <span class='comment'># HACK (Mispy): For some reason this is a String instead of an Exception.
1046
- </span><span class='kw'>if</span> <span class='id err'>err</span><span class='period'>.</span><span class='id match'>match</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>invalid status code: 401</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
1047
- <span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>TweetStream authentication failure!</span><span class='tstring_end'>&quot;</span></span>
1048
- <span class='kw'>else</span>
1049
- <span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unhandled TweetStream error: </span><span class='embexpr_beg'>#{</span><span class='gvar'>$!</span><span class='rbrace'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='gvar'>$@</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1050
- <span class='kw'>end</span>
1349
+ <span class='kw'>def</span> <span class='id run_stream'>run_stream</span>
1350
+ <span class='kw'>begin</span>
1351
+ <span class='ivar'>@stream</span><span class='period'>.</span><span class='id userstream'>userstream</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id status'>status</span><span class='op'>|</span>
1352
+ <span class='id req'>req</span> <span class='op'>=</span> <span class='id handle_tweet'>handle_tweet</span><span class='lparen'>(</span><span class='id status'>status</span><span class='rparen'>)</span>
1353
+ <span class='id handle_request'>handle_request</span><span class='lparen'>(</span><span class='id req'>req</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id req'>req</span><span class='period'>.</span><span class='id is_a?'>is_a?</span> <span class='const'>Request</span>
1051
1354
  <span class='kw'>end</span>
1052
-
1053
- <span class='kw'>begin</span>
1054
- <span class='ivar'>@stream</span><span class='period'>.</span><span class='id userstream'>userstream</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id status'>status</span><span class='op'>|</span>
1055
- <span class='id tweet'>tweet</span> <span class='op'>=</span> <span class='id handle_tweet'>handle_tweet</span><span class='lparen'>(</span><span class='id status'>status</span><span class='rparen'>)</span>
1056
- <span class='id handle_request'>handle_request</span><span class='lparen'>(</span><span class='id tweet'>tweet</span><span class='period'>.</span><span class='id request'>request</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id tweet'>tweet</span><span class='period'>.</span><span class='id is_a?'>is_a?</span> <span class='const'>Tweet</span>
1057
- <span class='kw'>end</span>
1058
- <span class='kw'>rescue</span> <span class='const'>Exception</span> <span class='op'>=&gt;</span> <span class='id e'>e</span>
1059
- <span class='kw'>if</span> <span class='id e'>e</span><span class='period'>.</span><span class='id is_a?'>is_a?</span> <span class='const'>Interrupt</span>
1060
- <span class='id exit'>exit</span>
1061
- <span class='kw'>else</span>
1062
- <span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>TweetStream event loop exited: </span><span class='embexpr_beg'>#{</span><span class='gvar'>$!</span><span class='rbrace'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='gvar'>$@</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1063
- <span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Reinitialising TweetStream in 5 seconds.</span><span class='tstring_end'>&quot;</span></span>
1064
- <span class='const'>EM</span><span class='op'>::</span><span class='const'>Timer</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='int'>5</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='id run'>run</span> <span class='rbrace'>}</span>
1065
- <span class='kw'>end</span>
1355
+ <span class='kw'>rescue</span> <span class='const'>Exception</span> <span class='op'>=&gt;</span> <span class='id e'>e</span>
1356
+ <span class='kw'>unless</span> <span class='id e'>e</span><span class='period'>.</span><span class='id is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Interrupt</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id e'>e</span><span class='period'>.</span><span class='id is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>SignalException</span><span class='rparen'>)</span>
1357
+ <span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>TweetStream client exited unexpectedly: </span><span class='embexpr_beg'>#{</span><span class='id error_report'>error_report</span><span class='lparen'>(</span><span class='id e'>e</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1358
+ <span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Restarting TweetStream client in 5 seconds.</span><span class='tstring_end'>&quot;</span></span>
1359
+ <span class='id sleep'>sleep</span> <span class='int'>5</span><span class='semicolon'>;</span> <span class='id init_stream'>init_stream</span><span class='semicolon'>;</span> <span class='id run_stream'>run_stream</span>
1066
1360
  <span class='kw'>end</span>
1067
-
1068
- <span class='const'>Log</span><span class='period'>.</span><span class='id info'>info</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Twitter client is online at @</span><span class='embexpr_beg'>#{</span><span class='ivar'>@username</span><span class='rbrace'>}</span><span class='tstring_content'> :3</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1069
- <span class='kw'>end</span><span class='period'>.</span><span class='id resume'>resume</span>
1361
+ <span class='kw'>else</span>
1362
+ <span class='const'>Log</span><span class='period'>.</span><span class='id info'>info</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>TweetStream client shutdown complete.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1363
+ <span class='kw'>end</span>
1070
1364
  <span class='kw'>end</span></pre>
1071
1365
  </td>
1072
1366
  </tr>
@@ -1098,7 +1392,6 @@ Sends a Twitter-sourced Response to the appropriate target.
1098
1392
  <pre class="lines">
1099
1393
 
1100
1394
 
1101
- 162
1102
1395
  163
1103
1396
  164
1104
1397
  165
@@ -1107,10 +1400,11 @@ Sends a Twitter-sourced Response to the appropriate target.
1107
1400
  168
1108
1401
  169
1109
1402
  170
1110
- 171</pre>
1403
+ 171
1404
+ 172</pre>
1111
1405
  </td>
1112
1406
  <td>
1113
- <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 162</span>
1407
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 163</span>
1114
1408
 
1115
1409
  <span class='kw'>def</span> <span class='id send'>send</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='rparen'>)</span>
1116
1410
  <span class='id source'>source</span> <span class='op'>=</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id request'>request</span><span class='period'>.</span><span class='id source'>source</span>
@@ -1125,6 +1419,48 @@ Sends a Twitter-sourced Response to the appropriate target.
1125
1419
  </td>
1126
1420
  </tr>
1127
1421
  </table>
1422
+ </div>
1423
+
1424
+ <div class="method_details ">
1425
+ <p class="signature " id="stop-instance_method">
1426
+
1427
+ - (<tt>Object</tt>) <strong>stop</strong>
1428
+
1429
+
1430
+
1431
+ </p><div class="docstring">
1432
+ <div class="discussion">
1433
+ <p>
1434
+ Shut down the TweetStream client.
1435
+ </p>
1436
+
1437
+
1438
+ </div>
1439
+ </div>
1440
+ <div class="tags">
1441
+
1442
+
1443
+ </div><table class="source_code">
1444
+ <tr>
1445
+ <td>
1446
+ <pre class="lines">
1447
+
1448
+
1449
+ 276
1450
+ 277
1451
+ 278
1452
+ 279</pre>
1453
+ </td>
1454
+ <td>
1455
+ <pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 276</span>
1456
+
1457
+ <span class='kw'>def</span> <span class='id stop'>stop</span>
1458
+ <span class='ivar'>@stream</span><span class='period'>.</span><span class='id stop'>stop</span> <span class='kw'>if</span> <span class='ivar'>@stream</span>
1459
+ <span class='const'>Process</span><span class='period'>.</span><span class='id kill'>kill</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>TERM</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='ivar'>@pid</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@pid</span>
1460
+ <span class='kw'>end</span></pre>
1461
+ </td>
1462
+ </tr>
1463
+ </table>
1128
1464
  </div>
1129
1465
 
1130
1466
  </div>
@@ -1132,7 +1468,7 @@ Sends a Twitter-sourced Response to the appropriate target.
1132
1468
  </div>
1133
1469
 
1134
1470
  <div id="footer">
1135
- Generated on Mon Nov 28 20:20:04 2011 by
1471
+ Generated on Tue Nov 29 11:44:04 2011 by
1136
1472
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1137
1473
  0.7.3 (ruby-1.9.2).
1138
1474
  </div>