safubot 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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>