safubot 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -284,7 +284,6 @@ The Blather stanza from which to source data.
284
284
  <pre class="lines">
285
285
 
286
286
 
287
- 43
288
287
  44
289
288
  45
290
289
  46
@@ -293,10 +292,11 @@ The Blather stanza from which to source data.
293
292
  49
294
293
  50
295
294
  51
296
- 52</pre>
295
+ 52
296
+ 53</pre>
297
297
  </td>
298
298
  <td>
299
- <pre class="code"><span class="info file"># File 'lib/safubot/xmpp.rb', line 43</span>
299
+ <pre class="code"><span class="info file"># File 'lib/safubot/xmpp.rb', line 44</span>
300
300
 
301
301
  <span class='kw'>def</span> <span class='id from'>from</span><span class='lparen'>(</span><span class='id raw'>raw</span><span class='rparen'>)</span>
302
302
  <span class='const'>Message</span><span class='period'>.</span><span class='id find_by_xmpp_id'>find_by_xmpp_id</span><span class='lparen'>(</span><span class='id raw'>raw</span><span class='period'>.</span><span class='id id'>id</span><span class='rparen'>)</span> <span class='op'>||</span>
@@ -344,12 +344,12 @@ Retrieves or creates an associated Request.
344
344
  <pre class="lines">
345
345
 
346
346
 
347
- 66
348
347
  67
349
- 68</pre>
348
+ 68
349
+ 69</pre>
350
350
  </td>
351
351
  <td>
352
- <pre class="code"><span class="info file"># File 'lib/safubot/xmpp.rb', line 66</span>
352
+ <pre class="code"><span class="info file"># File 'lib/safubot/xmpp.rb', line 67</span>
353
353
 
354
354
  <span class='kw'>def</span> <span class='id make_request'>make_request</span>
355
355
  <span class='kw'>self</span><span class='period'>.</span><span class='id request'>request</span> <span class='op'>||</span> <span class='const'>Request</span><span class='period'>.</span><span class='id create'>create</span><span class='lparen'>(</span><span class='symbol'>:user</span> <span class='op'>=&gt;</span> <span class='id user'>user</span><span class='comma'>,</span> <span class='symbol'>:source</span> <span class='op'>=&gt;</span> <span class='kw'>self</span><span class='comma'>,</span> <span class='symbol'>:text</span> <span class='op'>=&gt;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id text'>text</span><span class='rparen'>)</span>
@@ -384,12 +384,12 @@ Retrieves the KnownUser associated with this Message.
384
384
  <pre class="lines">
385
385
 
386
386
 
387
- 61
388
387
  62
389
- 63</pre>
388
+ 63
389
+ 64</pre>
390
390
  </td>
391
391
  <td>
392
- <pre class="code"><span class="info file"># File 'lib/safubot/xmpp.rb', line 61</span>
392
+ <pre class="code"><span class="info file"># File 'lib/safubot/xmpp.rb', line 62</span>
393
393
 
394
394
  <span class='kw'>def</span> <span class='id user'>user</span>
395
395
  <span class='const'>KnownUser</span><span class='period'>.</span><span class='id by_xmpp'>by_xmpp</span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id from'>from</span><span class='rparen'>)</span>
@@ -424,12 +424,12 @@ Retrieves the sender&#8217;s username from the JID.
424
424
  <pre class="lines">
425
425
 
426
426
 
427
- 56
428
427
  57
429
- 58</pre>
428
+ 58
429
+ 59</pre>
430
430
  </td>
431
431
  <td>
432
- <pre class="code"><span class="info file"># File 'lib/safubot/xmpp.rb', line 56</span>
432
+ <pre class="code"><span class="info file"># File 'lib/safubot/xmpp.rb', line 57</span>
433
433
 
434
434
  <span class='kw'>def</span> <span class='id username'>username</span>
435
435
  <span class='kw'>self</span><span class='period'>.</span><span class='id from'>from</span><span class='period'>.</span><span class='id split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>@</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
@@ -444,7 +444,7 @@ Retrieves the sender&#8217;s username from the JID.
444
444
  </div>
445
445
 
446
446
  <div id="footer">
447
- Generated on Mon Nov 28 20:20:03 2011 by
447
+ Generated on Tue Nov 29 11:44:04 2011 by
448
448
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
449
449
  0.7.3 (ruby-1.9.2).
450
450
  </div>
@@ -285,7 +285,7 @@
285
285
  </div>
286
286
 
287
287
  <div id="footer">
288
- Generated on Mon Nov 28 20:20:03 2011 by
288
+ Generated on Tue Nov 29 11:44:04 2011 by
289
289
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
290
290
  0.7.3 (ruby-1.9.2).
291
291
  </div>
@@ -54,7 +54,7 @@
54
54
 
55
55
  <iframe id="search_frame"></iframe>
56
56
 
57
- <div id="content"><div id='filecontents'><h1>safubot - an evented chatbot framework for Ruby</h1>
57
+ <div id="content"><div id='filecontents'><h1>safubot - an event-driven chatbot framework for Ruby</h1>
58
58
 
59
59
  <h2><a name="overview">Overview</a></h2>
60
60
 
@@ -73,7 +73,7 @@
73
73
 
74
74
  <p><a href="http://rdoc.info/gems/safubot">http://rdoc.info/gems/safubot</a></p>
75
75
 
76
- <h2><a name="example">Example Usage</a></h2>
76
+ <h2><a name="example">Sample Usage</a></h2>
77
77
 
78
78
  <pre class="code"><span class='id require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>safubot</span><span class='tstring_end'>'</span></span>
79
79
 
@@ -124,14 +124,52 @@
124
124
  <span class='kw'>end</span>
125
125
  <span class='kw'>end</span>
126
126
 
127
- <span class='comment'># You can run this from inside another EventMachine loop if
128
- </span><span class='comment'># you don't want it to block indefinitely.
127
+ <span class='comment'># This will fork the Twitter/XMPP streaming processes as needed
128
+ </span><span class='comment'># and then wait for them. You can call run_nowait if you want
129
+ </span><span class='comment'># a non-blocking form.
129
130
  </span><span class='const'>NiftyBot</span><span class='period'>.</span><span class='id new'>new</span><span class='period'>.</span><span class='id run'>run</span>
130
131
  </pre>
132
+
133
+ <h2><a name="logging">Logging</a></h2>
134
+
135
+ <p>Safubot::Log behaves as a Logger instance and will write to stdout by default. You can also tell it to write to a file:</p>
136
+
137
+ <pre class="code"><span class='const'>Safubot</span><span class='op'>::</span><span class='const'>Log</span><span class='period'>.</span><span class='id path'>path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/some/cool/logfile</span><span class='tstring_end'>&quot;</span></span>
138
+ </pre>
139
+
140
+ <h2><a name="example">Specific Examples</a></h2>
141
+
142
+ <h3>Find the last processed request from a user</h3>
143
+
144
+ <pre class="code"><span class='id on'>on</span><span class='lparen'>(</span><span class='symbol'>:request</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id req'>req</span><span class='op'>|</span>
145
+ <span class='id req'>req</span><span class='period'>.</span><span class='id user'>user</span><span class='period'>.</span><span class='id requests'>requests</span><span class='period'>.</span><span class='id where'>where</span><span class='lparen'>(</span><span class='symbol'>:processed</span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='period'>.</span><span class='id sort'>sort</span><span class='lparen'>(</span><span class='symbol'>:created_at</span><span class='period'>.</span><span class='id desc'>desc</span><span class='rparen'>)</span><span class='period'>.</span><span class='id first'>first</span>
146
+ <span class='kw'>end</span>
147
+ </pre>
148
+
149
+ <h3>Update our twitter account</h3>
150
+
151
+ <pre class="code"><span class='ivar'>@twitter</span><span class='period'>.</span><span class='id client'>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='tstring_content'>Hello there, wonderful, scary world of Twitter! I am so *not* a spambot.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
152
+ </pre>
153
+
154
+ <h3>Reply to a non-request timeline tweet</h3>
155
+
156
+ <pre class="code"><span class='ivar'>@twitter</span><span class='period'>.</span><span class='id on'>on</span><span class='lparen'>(</span><span class='symbol'>:timeline</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id tweet'>tweet</span><span class='op'>|</span>
157
+ <span class='kw'>if</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'>user</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>screen_name</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>unnali</span><span class='tstring_end'>&quot;</span></span>
158
+ <span class='ivar'>@twitter</span><span class='period'>.</span><span class='id reply'>reply</span> <span class='id tweet'>tweet</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Is HaeSeun OSS yet? :O</span><span class='tstring_end'>&quot;</span></span>
159
+ <span class='kw'>end</span>
160
+ <span class='kw'>end</span>
161
+ </pre>
162
+
163
+ <h3>Start an unprompted conversation with an XMPP user</h3>
164
+
165
+ <pre class="code"><span class='ivar'>@xmpp</span><span class='period'>.</span><span class='id on'>on</span><span class='lparen'>(</span><span class='symbol'>:ready</span><span class='rparen'>)</span> <span class='kw'>do</span>
166
+ <span class='ivar'>@xmpp</span><span class='period'>.</span><span class='id tell'>tell</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>^_^@jabber.org</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>You'd best be maintaining safubot!</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
167
+ <span class='kw'>end</span>
168
+ </pre>
131
169
  </div></div>
132
170
 
133
171
  <div id="footer">
134
- Generated on Mon Nov 28 20:20:03 2011 by
172
+ Generated on Tue Nov 29 11:44:04 2011 by
135
173
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
136
174
  0.7.3 (ruby-1.9.2).
137
175
  </div>
@@ -54,7 +54,7 @@
54
54
 
55
55
  <iframe id="search_frame"></iframe>
56
56
 
57
- <div id="content"><div id='filecontents'><h1>safubot - an evented chatbot framework for Ruby</h1>
57
+ <div id="content"><div id='filecontents'><h1>safubot - an event-driven chatbot framework for Ruby</h1>
58
58
 
59
59
  <h2><a name="overview">Overview</a></h2>
60
60
 
@@ -73,7 +73,7 @@
73
73
 
74
74
  <p><a href="http://rdoc.info/gems/safubot">http://rdoc.info/gems/safubot</a></p>
75
75
 
76
- <h2><a name="example">Example Usage</a></h2>
76
+ <h2><a name="example">Sample Usage</a></h2>
77
77
 
78
78
  <pre class="code"><span class='id require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>safubot</span><span class='tstring_end'>'</span></span>
79
79
 
@@ -124,14 +124,52 @@
124
124
  <span class='kw'>end</span>
125
125
  <span class='kw'>end</span>
126
126
 
127
- <span class='comment'># You can run this from inside another EventMachine loop if
128
- </span><span class='comment'># you don't want it to block indefinitely.
127
+ <span class='comment'># This will fork the Twitter/XMPP streaming processes as needed
128
+ </span><span class='comment'># and then wait for them. You can call run_nowait if you want
129
+ </span><span class='comment'># a non-blocking form.
129
130
  </span><span class='const'>NiftyBot</span><span class='period'>.</span><span class='id new'>new</span><span class='period'>.</span><span class='id run'>run</span>
130
131
  </pre>
132
+
133
+ <h2><a name="logging">Logging</a></h2>
134
+
135
+ <p>Safubot::Log behaves as a Logger instance and will write to stdout by default. You can also tell it to write to a file:</p>
136
+
137
+ <pre class="code"><span class='const'>Safubot</span><span class='op'>::</span><span class='const'>Log</span><span class='period'>.</span><span class='id path'>path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/some/cool/logfile</span><span class='tstring_end'>&quot;</span></span>
138
+ </pre>
139
+
140
+ <h2><a name="example">Specific Examples</a></h2>
141
+
142
+ <h3>Find the last processed request from a user</h3>
143
+
144
+ <pre class="code"><span class='id on'>on</span><span class='lparen'>(</span><span class='symbol'>:request</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id req'>req</span><span class='op'>|</span>
145
+ <span class='id req'>req</span><span class='period'>.</span><span class='id user'>user</span><span class='period'>.</span><span class='id requests'>requests</span><span class='period'>.</span><span class='id where'>where</span><span class='lparen'>(</span><span class='symbol'>:processed</span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='period'>.</span><span class='id sort'>sort</span><span class='lparen'>(</span><span class='symbol'>:created_at</span><span class='period'>.</span><span class='id desc'>desc</span><span class='rparen'>)</span><span class='period'>.</span><span class='id first'>first</span>
146
+ <span class='kw'>end</span>
147
+ </pre>
148
+
149
+ <h3>Update our twitter account</h3>
150
+
151
+ <pre class="code"><span class='ivar'>@twitter</span><span class='period'>.</span><span class='id client'>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='tstring_content'>Hello there, wonderful, scary world of Twitter! I am so *not* a spambot.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
152
+ </pre>
153
+
154
+ <h3>Reply to a non-request timeline tweet</h3>
155
+
156
+ <pre class="code"><span class='ivar'>@twitter</span><span class='period'>.</span><span class='id on'>on</span><span class='lparen'>(</span><span class='symbol'>:timeline</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id tweet'>tweet</span><span class='op'>|</span>
157
+ <span class='kw'>if</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'>user</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>screen_name</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>unnali</span><span class='tstring_end'>&quot;</span></span>
158
+ <span class='ivar'>@twitter</span><span class='period'>.</span><span class='id reply'>reply</span> <span class='id tweet'>tweet</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Is HaeSeun OSS yet? :O</span><span class='tstring_end'>&quot;</span></span>
159
+ <span class='kw'>end</span>
160
+ <span class='kw'>end</span>
161
+ </pre>
162
+
163
+ <h3>Start an unprompted conversation with an XMPP user</h3>
164
+
165
+ <pre class="code"><span class='ivar'>@xmpp</span><span class='period'>.</span><span class='id on'>on</span><span class='lparen'>(</span><span class='symbol'>:ready</span><span class='rparen'>)</span> <span class='kw'>do</span>
166
+ <span class='ivar'>@xmpp</span><span class='period'>.</span><span class='id tell'>tell</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>^_^@jabber.org</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>You'd best be maintaining safubot!</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
167
+ <span class='kw'>end</span>
168
+ </pre>
131
169
  </div></div>
132
170
 
133
171
  <div id="footer">
134
- Generated on Mon Nov 28 20:20:03 2011 by
172
+ Generated on Tue Nov 29 11:44:04 2011 by
135
173
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
136
174
  0.7.3 (ruby-1.9.2).
137
175
  </div>
@@ -89,14 +89,6 @@
89
89
 
90
90
 
91
91
  <li class="r1 ">
92
- <span class='object_link'><a href="Safubot/Request.html#callback-instance_method" title="Safubot::Request#callback (method)">#callback</a></span>
93
-
94
- <small>Safubot::Request</small>
95
-
96
- </li>
97
-
98
-
99
- <li class="r2 ">
100
92
  <span class='object_link'><a href="Safubot/Test.html#clean_environment-class_method" title="Safubot::Test.clean_environment (method)">clean_environment</a></span>
101
93
 
102
94
  <small>Safubot::Test</small>
@@ -104,7 +96,7 @@
104
96
  </li>
105
97
 
106
98
 
107
- <li class="r1 ">
99
+ <li class="r2 ">
108
100
  <span class='object_link'><a href="Safubot/Twitter/Bot.html#client-instance_method" title="Safubot::Twitter::Bot#client (method)">#client</a></span>
109
101
 
110
102
  <small>Safubot::Twitter::Bot</small>
@@ -112,7 +104,7 @@
112
104
  </li>
113
105
 
114
106
 
115
- <li class="r2 ">
107
+ <li class="r1 ">
116
108
  <span class='object_link'><a href="Safubot/XMPP/Bot.html#client-instance_method" title="Safubot::XMPP::Bot#client (method)">#client</a></span>
117
109
 
118
110
  <small>Safubot::XMPP::Bot</small>
@@ -120,16 +112,8 @@
120
112
  </li>
121
113
 
122
114
 
123
- <li class="r1 ">
124
- <span class='object_link'><a href="Safubot/Bot.html#concurrently-instance_method" title="Safubot::Bot#concurrently (method)">#concurrently</a></span>
125
-
126
- <small>Safubot::Bot</small>
127
-
128
- </li>
129
-
130
-
131
115
  <li class="r2 ">
132
- <span class='object_link'><a href="Safubot/Bot.html#cycle-instance_method" title="Safubot::Bot#cycle (method)">#cycle</a></span>
116
+ <span class='object_link'><a href="Safubot/Bot.html#concurrently-instance_method" title="Safubot::Bot#concurrently (method)">#concurrently</a></span>
133
117
 
134
118
  <small>Safubot::Bot</small>
135
119
 
@@ -169,30 +153,38 @@
169
153
 
170
154
 
171
155
  <li class="r1 ">
172
- <span class='object_link'><a href="Safubot/XMPP/Message.html#from-class_method" title="Safubot::XMPP::Message.from (method)">from</a></span>
156
+ <span class='object_link'><a href="Safubot.html#error_report-instance_method" title="Safubot#error_report (method)">#error_report</a></span>
173
157
 
174
- <small>Safubot::XMPP::Message</small>
158
+ <small>Safubot</small>
175
159
 
176
160
  </li>
177
161
 
178
162
 
179
163
  <li class="r2 ">
180
- <span class='object_link'><a href="Safubot/Twitter/Tweet.html#from-class_method" title="Safubot::Twitter::Tweet.from (method)">from</a></span>
164
+ <span class='object_link'><a href="Safubot/Twitter/DirectMessage.html#from-class_method" title="Safubot::Twitter::DirectMessage.from (method)">from</a></span>
181
165
 
182
- <small>Safubot::Twitter::Tweet</small>
166
+ <small>Safubot::Twitter::DirectMessage</small>
183
167
 
184
168
  </li>
185
169
 
186
170
 
187
171
  <li class="r1 ">
188
- <span class='object_link'><a href="Safubot/Twitter/DirectMessage.html#from-class_method" title="Safubot::Twitter::DirectMessage.from (method)">from</a></span>
172
+ <span class='object_link'><a href="Safubot/Twitter/Tweet.html#from-class_method" title="Safubot::Twitter::Tweet.from (method)">from</a></span>
189
173
 
190
- <small>Safubot::Twitter::DirectMessage</small>
174
+ <small>Safubot::Twitter::Tweet</small>
191
175
 
192
176
  </li>
193
177
 
194
178
 
195
179
  <li class="r2 ">
180
+ <span class='object_link'><a href="Safubot/XMPP/Message.html#from-class_method" title="Safubot::XMPP::Message.from (method)">from</a></span>
181
+
182
+ <small>Safubot::XMPP::Message</small>
183
+
184
+ </li>
185
+
186
+
187
+ <li class="r1 ">
196
188
  <span class='object_link'><a href="Safubot/Twitter/Bot.html#handle_message-instance_method" title="Safubot::Twitter::Bot#handle_message (method)">#handle_message</a></span>
197
189
 
198
190
  <small>Safubot::Twitter::Bot</small>
@@ -200,7 +192,7 @@
200
192
  </li>
201
193
 
202
194
 
203
- <li class="r1 ">
195
+ <li class="r2 ">
204
196
  <span class='object_link'><a href="Safubot/Twitter/Bot.html#handle_request-instance_method" title="Safubot::Twitter::Bot#handle_request (method)">#handle_request</a></span>
205
197
 
206
198
  <small>Safubot::Twitter::Bot</small>
@@ -208,7 +200,7 @@
208
200
  </li>
209
201
 
210
202
 
211
- <li class="r2 ">
203
+ <li class="r1 ">
212
204
  <span class='object_link'><a href="Safubot/Twitter/Bot.html#handle_tweet-instance_method" title="Safubot::Twitter::Bot#handle_tweet (method)">#handle_tweet</a></span>
213
205
 
214
206
  <small>Safubot::Twitter::Bot</small>
@@ -216,7 +208,7 @@
216
208
  </li>
217
209
 
218
210
 
219
- <li class="r1 ">
211
+ <li class="r2 ">
220
212
  <span class='object_link'><a href="Safubot/Twitter/Tweet.html#header_mentions-instance_method" title="Safubot::Twitter::Tweet#header_mentions (method)">#header_mentions</a></span>
221
213
 
222
214
  <small>Safubot::Twitter::Tweet</small>
@@ -224,23 +216,23 @@
224
216
  </li>
225
217
 
226
218
 
227
- <li class="r2 ">
228
- <span class='object_link'><a href="Safubot/Bot.html#initialize-instance_method" title="Safubot::Bot#initialize (method)">#initialize</a></span>
219
+ <li class="r1 ">
220
+ <span class='object_link'><a href="Safubot/XMPP/Bot.html#init_blather-instance_method" title="Safubot::XMPP::Bot#init_blather (method)">#init_blather</a></span>
229
221
 
230
- <small>Safubot::Bot</small>
222
+ <small>Safubot::XMPP::Bot</small>
231
223
 
232
224
  </li>
233
225
 
234
226
 
235
- <li class="r1 ">
236
- <span class='object_link'><a href="Safubot/Twitter/Bot.html#initialize-instance_method" title="Safubot::Twitter::Bot#initialize (method)">#initialize</a></span>
227
+ <li class="r2 ">
228
+ <span class='object_link'><a href="Safubot/Twitter/Bot.html#init_stream-instance_method" title="Safubot::Twitter::Bot#init_stream (method)">#init_stream</a></span>
237
229
 
238
230
  <small>Safubot::Twitter::Bot</small>
239
231
 
240
232
  </li>
241
233
 
242
234
 
243
- <li class="r2 ">
235
+ <li class="r1 ">
244
236
  <span class='object_link'><a href="Safubot/XMPP/Bot.html#initialize-instance_method" title="Safubot::XMPP::Bot#initialize (method)">#initialize</a></span>
245
237
 
246
238
  <small>Safubot::XMPP::Bot</small>
@@ -248,26 +240,34 @@
248
240
  </li>
249
241
 
250
242
 
243
+ <li class="r2 ">
244
+ <span class='object_link'><a href="Safubot/Twitter/Bot.html#initialize-instance_method" title="Safubot::Twitter::Bot#initialize (method)">#initialize</a></span>
245
+
246
+ <small>Safubot::Twitter::Bot</small>
247
+
248
+ </li>
249
+
250
+
251
251
  <li class="r1 ">
252
- <span class='object_link'><a href="Safubot/XMPP/Bot.html#jid-instance_method" title="Safubot::XMPP::Bot#jid (method)">#jid</a></span>
252
+ <span class='object_link'><a href="Safubot/Bot.html#initialize-instance_method" title="Safubot::Bot#initialize (method)">#initialize</a></span>
253
253
 
254
- <small>Safubot::XMPP::Bot</small>
254
+ <small>Safubot::Bot</small>
255
255
 
256
256
  </li>
257
257
 
258
258
 
259
259
  <li class="r2 ">
260
- <span class='object_link'><a href="Safubot/XMPP/Message.html#make_request-instance_method" title="Safubot::XMPP::Message#make_request (method)">#make_request</a></span>
260
+ <span class='object_link'><a href="Safubot/XMPP/Bot.html#jid-instance_method" title="Safubot::XMPP::Bot#jid (method)">#jid</a></span>
261
261
 
262
- <small>Safubot::XMPP::Message</small>
262
+ <small>Safubot::XMPP::Bot</small>
263
263
 
264
264
  </li>
265
265
 
266
266
 
267
267
  <li class="r1 ">
268
- <span class='object_link'><a href="Safubot/Query.html#make_request-instance_method" title="Safubot::Query#make_request (method)">#make_request</a></span>
268
+ <span class='object_link'><a href="Safubot/Twitter/DirectMessage.html#make_request-instance_method" title="Safubot::Twitter::DirectMessage#make_request (method)">#make_request</a></span>
269
269
 
270
- <small>Safubot::Query</small>
270
+ <small>Safubot::Twitter::DirectMessage</small>
271
271
 
272
272
  </li>
273
273
 
@@ -281,14 +281,22 @@
281
281
 
282
282
 
283
283
  <li class="r1 ">
284
- <span class='object_link'><a href="Safubot/Twitter/DirectMessage.html#make_request-instance_method" title="Safubot::Twitter::DirectMessage#make_request (method)">#make_request</a></span>
284
+ <span class='object_link'><a href="Safubot/XMPP/Message.html#make_request-instance_method" title="Safubot::XMPP::Message#make_request (method)">#make_request</a></span>
285
285
 
286
- <small>Safubot::Twitter::DirectMessage</small>
286
+ <small>Safubot::XMPP::Message</small>
287
287
 
288
288
  </li>
289
289
 
290
290
 
291
291
  <li class="r2 ">
292
+ <span class='object_link'><a href="Safubot/Query.html#make_request-instance_method" title="Safubot::Query#make_request (method)">#make_request</a></span>
293
+
294
+ <small>Safubot::Query</small>
295
+
296
+ </li>
297
+
298
+
299
+ <li class="r1 ">
292
300
  <span class='object_link'><a href="Safubot/KnownUser.html#merge-instance_method" title="Safubot::KnownUser#merge (method)">#merge</a></span>
293
301
 
294
302
  <small>Safubot::KnownUser</small>
@@ -296,7 +304,7 @@
296
304
  </li>
297
305
 
298
306
 
299
- <li class="r1 ">
307
+ <li class="r2 ">
300
308
  <span class='object_link'><a href="Safubot/Log.html#method_missing-class_method" title="Safubot::Log.method_missing (method)">method_missing</a></span>
301
309
 
302
310
  <small>Safubot::Log</small>
@@ -304,7 +312,7 @@
304
312
  </li>
305
313
 
306
314
 
307
- <li class="r2 ">
315
+ <li class="r1 ">
308
316
  <span class='object_link'><a href="Safubot.html#mode-class_method" title="Safubot.mode (method)">mode</a></span>
309
317
 
310
318
  <small>Safubot</small>
@@ -312,7 +320,7 @@
312
320
  </li>
313
321
 
314
322
 
315
- <li class="r1 ">
323
+ <li class="r2 ">
316
324
  <span class='object_link'><a href="Safubot/Evented.html#on-instance_method" title="Safubot::Evented#on (method)">#on</a></span>
317
325
 
318
326
  <small>Safubot::Evented</small>
@@ -320,7 +328,7 @@
320
328
  </li>
321
329
 
322
330
 
323
- <li class="r2 ">
331
+ <li class="r1 ">
324
332
  <span class='object_link'><a href="Safubot/Evented.html#once-instance_method" title="Safubot::Evented#once (method)">#once</a></span>
325
333
 
326
334
  <small>Safubot::Evented</small>
@@ -328,7 +336,7 @@
328
336
  </li>
329
337
 
330
338
 
331
- <li class="r1 ">
339
+ <li class="r2 ">
332
340
  <span class='object_link'><a href="Safubot/Bot.html#opts-instance_method" title="Safubot::Bot#opts (method)">#opts</a></span>
333
341
 
334
342
  <small>Safubot::Bot</small>
@@ -336,7 +344,7 @@
336
344
  </li>
337
345
 
338
346
 
339
- <li class="r2 ">
347
+ <li class="r1 ">
340
348
  <span class='object_link'><a href="Safubot/Twitter/Bot.html#opts-instance_method" title="Safubot::Twitter::Bot#opts (method)">#opts</a></span>
341
349
 
342
350
  <small>Safubot::Twitter::Bot</small>
@@ -344,7 +352,7 @@
344
352
  </li>
345
353
 
346
354
 
347
- <li class="r1 ">
355
+ <li class="r2 ">
348
356
  <span class='object_link'><a href="Safubot/Twitter/Tweet.html#original_tweet-instance_method" title="Safubot::Twitter::Tweet#original_tweet (method)">#original_tweet</a></span>
349
357
 
350
358
  <small>Safubot::Twitter::Tweet</small>
@@ -352,7 +360,7 @@
352
360
  </li>
353
361
 
354
362
 
355
- <li class="r2 ">
363
+ <li class="r1 ">
356
364
  <span class='object_link'><a href="Safubot/Log.html#path-class_method" title="Safubot::Log.path (method)">path</a></span>
357
365
 
358
366
  <small>Safubot::Log</small>
@@ -360,7 +368,23 @@
360
368
  </li>
361
369
 
362
370
 
371
+ <li class="r2 ">
372
+ <span class='object_link'><a href="Safubot/Twitter/Bot.html#pid-instance_method" title="Safubot::Twitter::Bot#pid (method)">#pid</a></span>
373
+
374
+ <small>Safubot::Twitter::Bot</small>
375
+
376
+ </li>
377
+
378
+
363
379
  <li class="r1 ">
380
+ <span class='object_link'><a href="Safubot/XMPP/Bot.html#pid-instance_method" title="Safubot::XMPP::Bot#pid (method)">#pid</a></span>
381
+
382
+ <small>Safubot::XMPP::Bot</small>
383
+
384
+ </li>
385
+
386
+
387
+ <li class="r2 ">
364
388
  <span class='object_link'><a href="Safubot/Twitter/Tweet.html#posted_at-instance_method" title="Safubot::Twitter::Tweet#posted_at (method)">#posted_at</a></span>
365
389
 
366
390
  <small>Safubot::Twitter::Tweet</small>
@@ -368,7 +392,7 @@
368
392
  </li>
369
393
 
370
394
 
371
- <li class="r2 ">
395
+ <li class="r1 ">
372
396
  <span class='object_link'><a href="Safubot/Bot.html#process-instance_method" title="Safubot::Bot#process (method)">#process</a></span>
373
397
 
374
398
  <small>Safubot::Bot</small>
@@ -376,7 +400,7 @@
376
400
  </li>
377
401
 
378
402
 
379
- <li class="r1 ">
403
+ <li class="r2 ">
380
404
  <span class='object_link'><a href="Safubot/Bot.html#process_request-instance_method" title="Safubot::Bot#process_request (method)">#process_request</a></span>
381
405
 
382
406
  <small>Safubot::Bot</small>
@@ -384,7 +408,7 @@
384
408
  </li>
385
409
 
386
410
 
387
- <li class="r2 ">
411
+ <li class="r1 ">
388
412
  <span class='object_link'><a href="Safubot/Bot.html#pull-instance_method" title="Safubot::Bot#pull (method)">#pull</a></span>
389
413
 
390
414
  <small>Safubot::Bot</small>
@@ -392,7 +416,7 @@
392
416
  </li>
393
417
 
394
418
 
395
- <li class="r1 ">
419
+ <li class="r2 ">
396
420
  <span class='object_link'><a href="Safubot/Twitter/Bot.html#pull-instance_method" title="Safubot::Twitter::Bot#pull (method)">#pull</a></span>
397
421
 
398
422
  <small>Safubot::Twitter::Bot</small>
@@ -400,7 +424,7 @@
400
424
  </li>
401
425
 
402
426
 
403
- <li class="r2 ">
427
+ <li class="r1 ">
404
428
  <span class='object_link'><a href="Safubot/Bot.html#push-instance_method" title="Safubot::Bot#push (method)">#push</a></span>
405
429
 
406
430
  <small>Safubot::Bot</small>
@@ -408,7 +432,7 @@
408
432
  </li>
409
433
 
410
434
 
411
- <li class="r1 ">
435
+ <li class="r2 ">
412
436
  <span class='object_link'><a href="Safubot/Twitter/Bot.html#reply-instance_method" title="Safubot::Twitter::Bot#reply (method)">#reply</a></span>
413
437
 
414
438
  <small>Safubot::Twitter::Bot</small>
@@ -416,7 +440,7 @@
416
440
  </li>
417
441
 
418
442
 
419
- <li class="r2 ">
443
+ <li class="r1 ">
420
444
  <span class='object_link'><a href="Safubot/Twitter/Bot.html#reply_header-instance_method" title="Safubot::Twitter::Bot#reply_header (method)">#reply_header</a></span>
421
445
 
422
446
  <small>Safubot::Twitter::Bot</small>
@@ -424,7 +448,7 @@
424
448
  </li>
425
449
 
426
450
 
427
- <li class="r1 ">
451
+ <li class="r2 ">
428
452
  <span class='object_link'><a href="Safubot/Test.html#request-class_method" title="Safubot::Test.request (method)">request</a></span>
429
453
 
430
454
  <small>Safubot::Test</small>
@@ -432,7 +456,7 @@
432
456
  </li>
433
457
 
434
458
 
435
- <li class="r2 ">
459
+ <li class="r1 ">
436
460
  <span class='object_link'><a href="Safubot/Bot.html#request_error-instance_method" title="Safubot::Bot#request_error (method)">#request_error</a></span>
437
461
 
438
462
  <small>Safubot::Bot</small>
@@ -440,7 +464,7 @@
440
464
  </li>
441
465
 
442
466
 
443
- <li class="r1 ">
467
+ <li class="r2 ">
444
468
  <span class='object_link'><a href="Safubot/Bot.html#respond-instance_method" title="Safubot::Bot#respond (method)">#respond</a></span>
445
469
 
446
470
  <small>Safubot::Bot</small>
@@ -448,7 +472,7 @@
448
472
  </li>
449
473
 
450
474
 
451
- <li class="r2 ">
475
+ <li class="r1 ">
452
476
  <span class='object_link'><a href="Safubot/Bot.html#respond_now-instance_method" title="Safubot::Bot#respond_now (method)">#respond_now</a></span>
453
477
 
454
478
  <small>Safubot::Bot</small>
@@ -456,6 +480,14 @@
456
480
  </li>
457
481
 
458
482
 
483
+ <li class="r2 ">
484
+ <span class='object_link'><a href="Safubot/Twitter/Bot.html#run-instance_method" title="Safubot::Twitter::Bot#run (method)">#run</a></span>
485
+
486
+ <small>Safubot::Twitter::Bot</small>
487
+
488
+ </li>
489
+
490
+
459
491
  <li class="r1 ">
460
492
  <span class='object_link'><a href="Safubot/XMPP/Bot.html#run-instance_method" title="Safubot::XMPP::Bot#run (method)">#run</a></span>
461
493
 
@@ -473,7 +505,23 @@
473
505
 
474
506
 
475
507
  <li class="r1 ">
476
- <span class='object_link'><a href="Safubot/Twitter/Bot.html#run-instance_method" title="Safubot::Twitter::Bot#run (method)">#run</a></span>
508
+ <span class='object_link'><a href="Safubot/XMPP/Bot.html#run_blather-instance_method" title="Safubot::XMPP::Bot#run_blather (method)">#run_blather</a></span>
509
+
510
+ <small>Safubot::XMPP::Bot</small>
511
+
512
+ </li>
513
+
514
+
515
+ <li class="r2 ">
516
+ <span class='object_link'><a href="Safubot/Bot.html#run_nowait-instance_method" title="Safubot::Bot#run_nowait (method)">#run_nowait</a></span>
517
+
518
+ <small>Safubot::Bot</small>
519
+
520
+ </li>
521
+
522
+
523
+ <li class="r1 ">
524
+ <span class='object_link'><a href="Safubot/Twitter/Bot.html#run_stream-instance_method" title="Safubot::Twitter::Bot#run_stream (method)">#run_stream</a></span>
477
525
 
478
526
  <small>Safubot::Twitter::Bot</small>
479
527
 
@@ -521,23 +569,23 @@
521
569
 
522
570
 
523
571
  <li class="r1 ">
524
- <span class='object_link'><a href="Safubot/Twitter/Tweet.html#targetless_text-instance_method" title="Safubot::Twitter::Tweet#targetless_text (method)">#targetless_text</a></span>
572
+ <span class='object_link'><a href="Safubot/Twitter/Bot.html#stop-instance_method" title="Safubot::Twitter::Bot#stop (method)">#stop</a></span>
525
573
 
526
- <small>Safubot::Twitter::Tweet</small>
574
+ <small>Safubot::Twitter::Bot</small>
527
575
 
528
576
  </li>
529
577
 
530
578
 
531
579
  <li class="r2 ">
532
- <span class='object_link'><a href="Safubot/Twitter/DirectMessage.html#text-instance_method" title="Safubot::Twitter::DirectMessage#text (method)">#text</a></span>
580
+ <span class='object_link'><a href="Safubot/Twitter/Bot.html#stream-instance_method" title="Safubot::Twitter::Bot#stream (method)">#stream</a></span>
533
581
 
534
- <small>Safubot::Twitter::DirectMessage</small>
582
+ <small>Safubot::Twitter::Bot</small>
535
583
 
536
584
  </li>
537
585
 
538
586
 
539
587
  <li class="r1 ">
540
- <span class='object_link'><a href="Safubot/Twitter/Tweet.html#text-instance_method" title="Safubot::Twitter::Tweet#text (method)">#text</a></span>
588
+ <span class='object_link'><a href="Safubot/Twitter/Tweet.html#targetless_text-instance_method" title="Safubot::Twitter::Tweet#targetless_text (method)">#targetless_text</a></span>
541
589
 
542
590
  <small>Safubot::Twitter::Tweet</small>
543
591
 
@@ -545,46 +593,54 @@
545
593
 
546
594
 
547
595
  <li class="r2 ">
548
- <span class='object_link'><a href="Safubot/KnownUser.html#tweets-instance_method" title="Safubot::KnownUser#tweets (method)">#tweets</a></span>
596
+ <span class='object_link'><a href="Safubot/XMPP/Bot.html#tell-instance_method" title="Safubot::XMPP::Bot#tell (method)">#tell</a></span>
549
597
 
550
- <small>Safubot::KnownUser</small>
598
+ <small>Safubot::XMPP::Bot</small>
551
599
 
552
600
  </li>
553
601
 
554
602
 
555
603
  <li class="r1 ">
556
- <span class='object_link'><a href="Safubot/Bot.html#twitter-instance_method" title="Safubot::Bot#twitter (method)">#twitter</a></span>
604
+ <span class='object_link'><a href="Safubot/Twitter/Tweet.html#text-instance_method" title="Safubot::Twitter::Tweet#text (method)">#text</a></span>
557
605
 
558
- <small>Safubot::Bot</small>
606
+ <small>Safubot::Twitter::Tweet</small>
559
607
 
560
608
  </li>
561
609
 
562
610
 
563
611
  <li class="r2 ">
564
- <span class='object_link'><a href="Safubot/Evented.html#unbind-instance_method" title="Safubot::Evented#unbind (method)">#unbind</a></span>
612
+ <span class='object_link'><a href="Safubot/Twitter/DirectMessage.html#text-instance_method" title="Safubot::Twitter::DirectMessage#text (method)">#text</a></span>
565
613
 
566
- <small>Safubot::Evented</small>
614
+ <small>Safubot::Twitter::DirectMessage</small>
567
615
 
568
616
  </li>
569
617
 
570
618
 
571
619
  <li class="r1 ">
572
- <span class='object_link'><a href="Safubot/Twitter/Tweet.html#user-instance_method" title="Safubot::Twitter::Tweet#user (method)">#user</a></span>
620
+ <span class='object_link'><a href="Safubot/KnownUser.html#tweets-instance_method" title="Safubot::KnownUser#tweets (method)">#tweets</a></span>
573
621
 
574
- <small>Safubot::Twitter::Tweet</small>
622
+ <small>Safubot::KnownUser</small>
575
623
 
576
624
  </li>
577
625
 
578
626
 
579
627
  <li class="r2 ">
580
- <span class='object_link'><a href="Safubot/Twitter/DirectMessage.html#user-instance_method" title="Safubot::Twitter::DirectMessage#user (method)">#user</a></span>
628
+ <span class='object_link'><a href="Safubot/Bot.html#twitter-instance_method" title="Safubot::Bot#twitter (method)">#twitter</a></span>
581
629
 
582
- <small>Safubot::Twitter::DirectMessage</small>
630
+ <small>Safubot::Bot</small>
583
631
 
584
632
  </li>
585
633
 
586
634
 
587
635
  <li class="r1 ">
636
+ <span class='object_link'><a href="Safubot/Evented.html#unbind-instance_method" title="Safubot::Evented#unbind (method)">#unbind</a></span>
637
+
638
+ <small>Safubot::Evented</small>
639
+
640
+ </li>
641
+
642
+
643
+ <li class="r2 ">
588
644
  <span class='object_link'><a href="Safubot/XMPP/Message.html#user-instance_method" title="Safubot::XMPP::Message#user (method)">#user</a></span>
589
645
 
590
646
  <small>Safubot::XMPP::Message</small>
@@ -592,23 +648,23 @@
592
648
  </li>
593
649
 
594
650
 
595
- <li class="r2 ">
596
- <span class='object_link'><a href="Safubot/Twitter/DirectMessage.html#username-instance_method" title="Safubot::Twitter::DirectMessage#username (method)">#username</a></span>
651
+ <li class="r1 ">
652
+ <span class='object_link'><a href="Safubot/Twitter/DirectMessage.html#user-instance_method" title="Safubot::Twitter::DirectMessage#user (method)">#user</a></span>
597
653
 
598
654
  <small>Safubot::Twitter::DirectMessage</small>
599
655
 
600
656
  </li>
601
657
 
602
658
 
603
- <li class="r1 ">
604
- <span class='object_link'><a href="Safubot/Twitter/Tweet.html#username-instance_method" title="Safubot::Twitter::Tweet#username (method)">#username</a></span>
659
+ <li class="r2 ">
660
+ <span class='object_link'><a href="Safubot/Twitter/Tweet.html#user-instance_method" title="Safubot::Twitter::Tweet#user (method)">#user</a></span>
605
661
 
606
662
  <small>Safubot::Twitter::Tweet</small>
607
663
 
608
664
  </li>
609
665
 
610
666
 
611
- <li class="r2 ">
667
+ <li class="r1 ">
612
668
  <span class='object_link'><a href="Safubot/XMPP/Message.html#username-instance_method" title="Safubot::XMPP::Message#username (method)">#username</a></span>
613
669
 
614
670
  <small>Safubot::XMPP::Message</small>
@@ -616,7 +672,7 @@
616
672
  </li>
617
673
 
618
674
 
619
- <li class="r1 ">
675
+ <li class="r2 ">
620
676
  <span class='object_link'><a href="Safubot/Twitter/Bot.html#username-instance_method" title="Safubot::Twitter::Bot#username (method)">#username</a></span>
621
677
 
622
678
  <small>Safubot::Twitter::Bot</small>
@@ -624,7 +680,23 @@
624
680
  </li>
625
681
 
626
682
 
683
+ <li class="r1 ">
684
+ <span class='object_link'><a href="Safubot/Twitter/Tweet.html#username-instance_method" title="Safubot::Twitter::Tweet#username (method)">#username</a></span>
685
+
686
+ <small>Safubot::Twitter::Tweet</small>
687
+
688
+ </li>
689
+
690
+
627
691
  <li class="r2 ">
692
+ <span class='object_link'><a href="Safubot/Twitter/DirectMessage.html#username-instance_method" title="Safubot::Twitter::DirectMessage#username (method)">#username</a></span>
693
+
694
+ <small>Safubot::Twitter::DirectMessage</small>
695
+
696
+ </li>
697
+
698
+
699
+ <li class="r1 ">
628
700
  <span class='object_link'><a href="Safubot/Bot.html#xmpp-instance_method" title="Safubot::Bot#xmpp (method)">#xmpp</a></span>
629
701
 
630
702
  <small>Safubot::Bot</small>