blather 0.8.5 → 0.8.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 814d92df4c498de84d675ae72989b9fd37a44f71
4
- data.tar.gz: 30e5f51f563153e26fd4bb7941295a4102a86507
3
+ metadata.gz: 14b758953e449e83539a7b2f7056f9f4a755a247
4
+ data.tar.gz: fc6cb44dd2015306f8c1e5b1a6beb8d2e9d132c6
5
5
  SHA512:
6
- metadata.gz: d73eeabd9156c0a01810b82e46540cc95689128260ec131d8a01f7633fdb84e06e8b9219258e0ad392c18d1572b8e5a72134ffc674f30a8dc05e1dd3ad62c35f
7
- data.tar.gz: e7f514173219c93df7af0858ecdfa6cbe16e17a2c6c86f8e053df9f0f7c63a3869ae86c75b4401b8d85b988dab3b413c39fb972aca5958d12f77380154048602
6
+ metadata.gz: ba7f5d07dce4c3f114b33a998c42a8f5db5f958fb5a38713b25219417bcbe5f42c1467093c58731d390dd062f49ce1c1e7a055d6ccfedbaddd2f1831211718da
7
+ data.tar.gz: 79d8bed1bbe6816bc84c66aebeb69a086e21bc30dddfc294f01b621d9f30a0f1c1dc3d58ec447e29c91759ed23797b8ab145a73620a95e4a41fc5b04a42c2389
@@ -1,5 +1,10 @@
1
1
  # [develop](https://github.com/adhearsion/blather/compare/master...develop)
2
2
 
3
+ # [v0.8.6](https://github.com/adhearsion/blather/compare/v0.8.5...v0.8.6) - [2013-08-23](https://rubygems.org/gems/blather/versions/0.8.6)
4
+ * Bugfix: Ensure that session creation always comes immediately after binding. Fixes incompatibility with ejabberd.
5
+ * Bugfix: Close streams on next EM tick to avoid hanging.
6
+ * Bugfix: Ensure handler methods are available even when including the DSL in Object
7
+
3
8
  # [v0.8.5](https://github.com/adhearsion/blather/compare/v0.8.4...v0.8.5) - [2013-06-01](https://rubygems.org/gems/blather/versions/0.8.5)
4
9
  * Bugfix: Ensure that binding is always performed before session creation, regardless of the order of elements in the feature set provided by the server. This was causing incompatability with Tigase.
5
10
 
data/README.md CHANGED
@@ -242,159 +242,159 @@ the preamble to most relevant classes).
242
242
 
243
243
  Blather provides support in one way or another for many XMPP specifications. Below is a list of specifications and the status of support for them in Blather. This list *may not be correct*. If the list indicates a lack of support for a specification you wish to use, you are encouraged to check that this is correct. Likewise, if you find an overstatement of Blather's spec compliance, please point this out. Also note that even without built-in support for a specification, you can still manually construct and parse stanzas alongside use of Blather's built-in helpers.
244
244
 
245
- Specification | Support | Notes
246
- ------------- | ------- | -----
247
- RFC 6120 | Full |
248
- RFC 6121 | Full |
249
- RFC 6122 | Full |
250
- XEP-0001 | N/A |
251
- XEP-0002 | N/A |
252
- XEP-0004 | Partial |
253
- XEP-0009 | None |
254
- XEP-0012 | None |
255
- XEP-0013 | None |
256
- XEP-0016 | None |
257
- XEP-0019 | N/A |
258
- XEP-0020 | Partial |
259
- XEP-0027 | None |
260
- XEP-0030 | Partial |
261
- XEP-0033 | None |
262
- XEP-0045 | Partial |
263
- XEP-0047 | None |
264
- XEP-0048 | None |
265
- XEP-0049 | None |
266
- XEP-0050 | Partial |
267
- XEP-0053 | None |
268
- XEP-0054 | None |
269
- XEP-0055 | None |
270
- XEP-0059 | None |
271
- XEP-0060 | Partial |
272
- XEP-0065 | None |
273
- XEP-0066 | None |
274
- XEP-0068 | None |
275
- XEP-0070 | None |
276
- XEP-0071 | Partial |
277
- XEP-0072 | None |
278
- XEP-0076 | None |
279
- XEP-0077 | None |
280
- XEP-0079 | None |
281
- XEP-0080 | None |
282
- XEP-0082 | None |
283
- XEP-0083 | None |
284
- XEP-0084 | None |
285
- XEP-0085 | Partial |
286
- XEP-0092 | None |
287
- XEP-0095 | Partial |
288
- XEP-0096 | Partial |
289
- XEP-0100 | None |
290
- XEP-0106 | None |
291
- XEP-0107 | None |
292
- XEP-0108 | None |
293
- XEP-0114 | Full |
294
- XEP-0115 | Partial |
295
- XEP-0118 | None |
296
- XEP-0122 | None |
297
- XEP-0124 | None |
298
- XEP-0126 | None |
299
- XEP-0127 | None |
300
- XEP-0128 | None |
301
- XEP-0130 | None |
302
- XEP-0131 | None |
303
- XEP-0132 | None |
304
- XEP-0133 | None |
305
- XEP-0134 | None |
306
- XEP-0136 | None |
307
- XEP-0137 | None |
308
- XEP-0138 | None |
309
- XEP-0141 | None |
310
- XEP-0143 | None |
311
- XEP-0144 | N/A |
312
- XEP-0145 | None |
313
- XEP-0146 | None |
314
- XEP-0147 | None |
315
- XEP-0148 | None |
316
- XEP-0149 | None |
317
- XEP-0153 | None |
318
- XEP-0155 | None |
319
- XEP-0156 | None |
320
- XEP-0157 | None |
321
- XEP-0158 | None |
322
- XEP-0160 | None |
323
- XEP-0163 | Partial |
324
- XEP-0166 | None |
325
- XEP-0167 | None |
326
- XEP-0169 | None |
327
- XEP-0170 | None |
328
- XEP-0171 | None |
329
- XEP-0172 | None |
330
- XEP-0174 | None |
331
- XEP-0175 | None |
332
- XEP-0176 | None |
333
- XEP-0177 | None |
334
- XEP-0178 | None |
335
- XEP-0182 | N/A |
336
- XEP-0183 | None |
337
- XEP-0184 | None |
338
- XEP-0185 | None |
339
- XEP-0191 | None |
340
- XEP-0198 | None |
341
- XEP-0199 | Partial |
342
- XEP-0201 | None |
343
- XEP-0202 | None |
344
- XEP-0203 | Partial |
345
- XEP-0205 | None |
346
- XEP-0206 | None |
347
- XEP-0207 | None |
348
- XEP-0220 | None |
349
- XEP-0221 | None |
350
- XEP-0222 | None |
351
- XEP-0223 | None |
352
- XEP-0224 | None |
353
- XEP-0227 | None |
354
- XEP-0229 | None |
355
- XEP-0231 | None |
356
- XEP-0233 | None |
357
- XEP-0234 | None |
358
- XEP-0239 | None |
359
- XEP-0242 | None |
360
- XEP-0243 | None |
361
- XEP-0245 | None |
362
- XEP-0249 | None |
363
- XEP-0256 | None |
364
- XEP-0258 | None |
365
- XEP-0260 | None |
366
- XEP-0261 | None |
367
- XEP-0262 | None |
368
- XEP-0263 | None |
369
- XEP-0266 | None |
370
- XEP-0267 | None |
371
- XEP-0270 | None |
372
- XEP-0273 | None |
373
- XEP-0277 | None |
374
- XEP-0278 | None |
375
- XEP-0280 | None |
376
- XEP-0288 | None |
377
- XEP-0292 | None |
378
- XEP-0293 | None |
379
- XEP-0294 | None |
380
- XEP-0295 | None |
381
- XEP-0296 | None |
382
- XEP-0297 | None |
383
- XEP-0298 | None |
384
- XEP-0299 | None |
385
- XEP-0300 | None |
386
- XEP-0301 | None |
387
- XEP-0302 | None |
388
- XEP-0303 | None |
389
- XEP-0304 | None |
390
- XEP-0305 | None |
391
- XEP-0306 | None |
392
- XEP-0307 | None |
393
- XEP-0308 | None |
394
- XEP-0309 | None |
395
- XEP-0310 | None |
396
- XEP-0311 | None |
397
- XEP-0312 | None |
245
+ Specification | Support | Name | Notes
246
+ ---------------------------------------------------- | ------- | ---- | -----
247
+ [RFC 6120](http://tools.ietf.org/html/rfc6120) | Full | XMPP: Core |
248
+ [RFC 6121](http://tools.ietf.org/html/rfc6121) | Full | XMPP: Instant Messaging and Presence |
249
+ [RFC 6122](http://tools.ietf.org/html/rfc6122) | Full | XMPP: Address Format |
250
+ [XEP-0001](http://xmpp.org/extensions/xep-0001.html) | N/A | XMPP Extension Protocols |
251
+ [XEP-0002](http://xmpp.org/extensions/xep-0002.html) | N/A | Special Interest Groups (SIGs) |
252
+ [XEP-0004](http://xmpp.org/extensions/xep-0004.html) | Partial | Data Forms |
253
+ [XEP-0009](http://xmpp.org/extensions/xep-0009.html) | None | Jabber-RPC |
254
+ [XEP-0012](http://xmpp.org/extensions/xep-0012.html) | None | Last Activity |
255
+ [XEP-0013](http://xmpp.org/extensions/xep-0013.html) | None | Flexible Offline Message Retrieval |
256
+ [XEP-0016](http://xmpp.org/extensions/xep-0016.html) | None | Privacy Lists |
257
+ [XEP-0019](http://xmpp.org/extensions/xep-0019.html) | N/A | Streamlining the SIGs |
258
+ [XEP-0020](http://xmpp.org/extensions/xep-0020.html) | Partial | Feature Negotiation |
259
+ [XEP-0027](http://xmpp.org/extensions/xep-0027.html) | None | Current Jabber OpenPGP Usage |
260
+ [XEP-0030](http://xmpp.org/extensions/xep-0030.html) | Partial | Service Discovery |
261
+ [XEP-0033](http://xmpp.org/extensions/xep-0033.html) | None | Extended Stanza Addressing |
262
+ [XEP-0045](http://xmpp.org/extensions/xep-0045.html) | Partial | Multi-User Chat |
263
+ [XEP-0047](http://xmpp.org/extensions/xep-0047.html) | None | In-Band Bytestreams |
264
+ [XEP-0048](http://xmpp.org/extensions/xep-0048.html) | None | Bookmarks |
265
+ [XEP-0049](http://xmpp.org/extensions/xep-0049.html) | None | Private XML Storage |
266
+ [XEP-0050](http://xmpp.org/extensions/xep-0050.html) | Partial | Ad-Hoc Commands |
267
+ [XEP-0053](http://xmpp.org/extensions/xep-0053.html) | None | XMPP Registrar Function |
268
+ [XEP-0054](http://xmpp.org/extensions/xep-0054.html) | None | vcard-temp |
269
+ [XEP-0055](http://xmpp.org/extensions/xep-0055.html) | None | Jabber Search |
270
+ [XEP-0059](http://xmpp.org/extensions/xep-0059.html) | None | Result Set Management |
271
+ [XEP-0060](http://xmpp.org/extensions/xep-0060.html) | Partial | Publish-Subscribe |
272
+ [XEP-0065](http://xmpp.org/extensions/xep-0065.html) | None | SOCKS5 Bytestreams |
273
+ [XEP-0066](http://xmpp.org/extensions/xep-0066.html) | None | Out of Band Data |
274
+ [XEP-0068](http://xmpp.org/extensions/xep-0068.html) | None | Field Standardization for Data Forms |
275
+ [XEP-0070](http://xmpp.org/extensions/xep-0070.html) | None | Verifying HTTP Requests via XMPP |
276
+ [XEP-0071](http://xmpp.org/extensions/xep-0071.html) | Partial | XHTML-IM |
277
+ [XEP-0072](http://xmpp.org/extensions/xep-0072.html) | None | SOAP Over XMPP |
278
+ [XEP-0076](http://xmpp.org/extensions/xep-0076.html) | None | Malicious Stanzas |
279
+ [XEP-0077](http://xmpp.org/extensions/xep-0077.html) | None | In-Band Registration |
280
+ [XEP-0079](http://xmpp.org/extensions/xep-0079.html) | None | Advanced Message Processing |
281
+ [XEP-0080](http://xmpp.org/extensions/xep-0080.html) | None | User Location |
282
+ [XEP-0082](http://xmpp.org/extensions/xep-0082.html) | None | XMPP Date and Time Profiles |
283
+ [XEP-0083](http://xmpp.org/extensions/xep-0083.html) | None | Nested Roster Groups |
284
+ [XEP-0084](http://xmpp.org/extensions/xep-0084.html) | None | User Avatar |
285
+ [XEP-0085](http://xmpp.org/extensions/xep-0085.html) | Partial | Chat State Notifications |
286
+ [XEP-0092](http://xmpp.org/extensions/xep-0092.html) | None | Software Version |
287
+ [XEP-0095](http://xmpp.org/extensions/xep-0095.html) | Partial | Stream Initiation |
288
+ [XEP-0096](http://xmpp.org/extensions/xep-0096.html) | Partial | SI File Transfer |
289
+ [XEP-0100](http://xmpp.org/extensions/xep-0100.html) | None | Gateway Interaction |
290
+ [XEP-0106](http://xmpp.org/extensions/xep-0106.html) | None | JID Escaping |
291
+ [XEP-0107](http://xmpp.org/extensions/xep-0107.html) | None | User Mood |
292
+ [XEP-0108](http://xmpp.org/extensions/xep-0108.html) | None | User Activity |
293
+ [XEP-0114](http://xmpp.org/extensions/xep-0114.html) | Full | Jabber Component Protocol |
294
+ [XEP-0115](http://xmpp.org/extensions/xep-0115.html) | Partial | Entity Capabilities |
295
+ [XEP-0118](http://xmpp.org/extensions/xep-0118.html) | None | User Tune |
296
+ [XEP-0122](http://xmpp.org/extensions/xep-0122.html) | None | Data Forms Validation |
297
+ [XEP-0124](http://xmpp.org/extensions/xep-0124.html) | None | Bidirectional-streams Over Synchronous HTTP (BOSH) |
298
+ [XEP-0126](http://xmpp.org/extensions/xep-0126.html) | None | Invisibility |
299
+ [XEP-0127](http://xmpp.org/extensions/xep-0127.html) | None | Common Alerting Protocol (CAP) Over XMPP |
300
+ [XEP-0128](http://xmpp.org/extensions/xep-0128.html) | None | Service Discovery Extensions |
301
+ [XEP-0130](http://xmpp.org/extensions/xep-0130.html) | None | Waiting Lists |
302
+ [XEP-0131](http://xmpp.org/extensions/xep-0131.html) | None | Stanza Headers and Internet Metadata |
303
+ [XEP-0132](http://xmpp.org/extensions/xep-0132.html) | None | Presence Obtained via Kinesthetic Excitation (POKE) |
304
+ [XEP-0133](http://xmpp.org/extensions/xep-0133.html) | None | Service Administration |
305
+ [XEP-0134](http://xmpp.org/extensions/xep-0134.html) | None | XMPP Design Guidelines |
306
+ [XEP-0136](http://xmpp.org/extensions/xep-0136.html) | None | Message Archiving |
307
+ [XEP-0137](http://xmpp.org/extensions/xep-0137.html) | None | Publishing Stream Initiation Requests |
308
+ [XEP-0138](http://xmpp.org/extensions/xep-0138.html) | None | Stream Compression |
309
+ [XEP-0141](http://xmpp.org/extensions/xep-0141.html) | None | Data Forms Layout |
310
+ [XEP-0143](http://xmpp.org/extensions/xep-0143.html) | None | Guidelines for Authors of XMPP Extension Protocols |
311
+ [XEP-0144](http://xmpp.org/extensions/xep-0144.html) | N/A | Roster Item Exchange |
312
+ [XEP-0145](http://xmpp.org/extensions/xep-0145.html) | None | Annotations |
313
+ [XEP-0146](http://xmpp.org/extensions/xep-0146.html) | None | Remote Controlling Clients |
314
+ [XEP-0147](http://xmpp.org/extensions/xep-0147.html) | None | XMPP URI Scheme Query Components |
315
+ [XEP-0148](http://xmpp.org/extensions/xep-0148.html) | None | Instant Messaging Intelligence Quotient (IM IQ) |
316
+ [XEP-0149](http://xmpp.org/extensions/xep-0149.html) | None | Time Periods |
317
+ [XEP-0153](http://xmpp.org/extensions/xep-0153.html) | None | vCard-Based Avatars |
318
+ [XEP-0155](http://xmpp.org/extensions/xep-0155.html) | None | Stanza Session Negotiation |
319
+ [XEP-0156](http://xmpp.org/extensions/xep-0156.html) | None | Discovering Alternative XMPP Connection Methods |
320
+ [XEP-0157](http://xmpp.org/extensions/xep-0157.html) | None | Contact Addresses for XMPP Services |
321
+ [XEP-0158](http://xmpp.org/extensions/xep-0158.html) | None | CAPTCHA Forms |
322
+ [XEP-0160](http://xmpp.org/extensions/xep-0160.html) | None | Best Practices for Handling Offline Messages |
323
+ [XEP-0163](http://xmpp.org/extensions/xep-0163.html) | Partial | Personal Eventing Protocol |
324
+ [XEP-0166](http://xmpp.org/extensions/xep-0166.html) | None | Jingle |
325
+ [XEP-0167](http://xmpp.org/extensions/xep-0167.html) | None | Jingle RTP Sessions |
326
+ [XEP-0169](http://xmpp.org/extensions/xep-0169.html) | None | Twas The Night Before Christmas (Jabber Version) |
327
+ [XEP-0170](http://xmpp.org/extensions/xep-0170.html) | None | Recommended Order of Stream Feature Negotiation |
328
+ [XEP-0171](http://xmpp.org/extensions/xep-0171.html) | None | Language Translation |
329
+ [XEP-0172](http://xmpp.org/extensions/xep-0172.html) | None | User Nickname |
330
+ [XEP-0174](http://xmpp.org/extensions/xep-0174.html) | None | Serverless Messaging |
331
+ [XEP-0175](http://xmpp.org/extensions/xep-0175.html) | None | Best Practices for Use of SASL ANONYMOUS |
332
+ [XEP-0176](http://xmpp.org/extensions/xep-0176.html) | None | Jingle ICE-UDP Transport Method |
333
+ [XEP-0177](http://xmpp.org/extensions/xep-0177.html) | None | Jingle Raw UDP Transport Method |
334
+ [XEP-0178](http://xmpp.org/extensions/xep-0178.html) | None | Best Practices for Use of SASL EXTERNAL with Certificates |
335
+ [XEP-0182](http://xmpp.org/extensions/xep-0182.html) | N/A | Application-Specific Error Conditions |
336
+ [XEP-0183](http://xmpp.org/extensions/xep-0183.html) | None | Jingle Telepathy Transport |
337
+ [XEP-0184](http://xmpp.org/extensions/xep-0184.html) | None | Message Delivery Receipts |
338
+ [XEP-0185](http://xmpp.org/extensions/xep-0185.html) | None | Dialback Key Generation and Validation |
339
+ [XEP-0191](http://xmpp.org/extensions/xep-0191.html) | None | Blocking Command|
340
+ [XEP-0198](http://xmpp.org/extensions/xep-0198.html) | None | Stream Management |
341
+ [XEP-0199](http://xmpp.org/extensions/xep-0199.html) | Partial | XMPP Ping |
342
+ [XEP-0201](http://xmpp.org/extensions/xep-0201.html) | None | Best Practices for Message Threads |
343
+ [XEP-0202](http://xmpp.org/extensions/xep-0202.html) | None | Entity Time |
344
+ [XEP-0203](http://xmpp.org/extensions/xep-0203.html) | Partial | Delayed Delivery |
345
+ [XEP-0205](http://xmpp.org/extensions/xep-0205.html) | None | Best Practices to Discourage Denial of Service Attacks |
346
+ [XEP-0206](http://xmpp.org/extensions/xep-0206.html) | None | XMPP Over BOSH |
347
+ [XEP-0207](http://xmpp.org/extensions/xep-0207.html) | None | XMPP Eventing via Pubsub |
348
+ [XEP-0220](http://xmpp.org/extensions/xep-0220.html) | None | Server Dialback |
349
+ [XEP-0221](http://xmpp.org/extensions/xep-0221.html) | None | Data Forms Media Element |
350
+ [XEP-0222](http://xmpp.org/extensions/xep-0222.html) | None | Persistent Storage of Public Data via PubSub |
351
+ [XEP-0223](http://xmpp.org/extensions/xep-0223.html) | None | Persistent Storage of Private Data via PubSub |
352
+ [XEP-0224](http://xmpp.org/extensions/xep-0224.html) | None | Attention |
353
+ [XEP-0227](http://xmpp.org/extensions/xep-0227.html) | None | Portable Import/Export Format for XMPP-IM Servers |
354
+ [XEP-0229](http://xmpp.org/extensions/xep-0229.html) | None | Stream Compression with LZW |
355
+ [XEP-0231](http://xmpp.org/extensions/xep-0231.html) | None | Bits of Binary |
356
+ [XEP-0233](http://xmpp.org/extensions/xep-0233.html) | None | Domain-Based Service Names in XMPP SASL Negotiation |
357
+ [XEP-0234](http://xmpp.org/extensions/xep-0234.html) | None | Jingle File Transfer |
358
+ [XEP-0239](http://xmpp.org/extensions/xep-0239.html) | None | Binary XMPP |
359
+ [XEP-0242](http://xmpp.org/extensions/xep-0242.html) | None | XMPP Client Compliance 2009 |
360
+ [XEP-0243](http://xmpp.org/extensions/xep-0243.html) | None | XMPP Server Compliance 2009 |
361
+ [XEP-0245](http://xmpp.org/extensions/xep-0245.html) | None | The /me Command |
362
+ [XEP-0249](http://xmpp.org/extensions/xep-0249.html) | None | Direct MUC Invitations |
363
+ [XEP-0256](http://xmpp.org/extensions/xep-0256.html) | None | Last Activity in Presence |
364
+ [XEP-0258](http://xmpp.org/extensions/xep-0258.html) | None | Security Labels in XMPP |
365
+ [XEP-0260](http://xmpp.org/extensions/xep-0260.html) | None | Jingle SOCKS5 Bytestreams Transport Method |
366
+ [XEP-0261](http://xmpp.org/extensions/xep-0261.html) | None | Jingle In-Band Bytestreams Transport Method |
367
+ [XEP-0262](http://xmpp.org/extensions/xep-0262.html) | None | Use of ZRTP in Jingle RTP Sessions |
368
+ [XEP-0263](http://xmpp.org/extensions/xep-0263.html) | None | ECO-XMPP |
369
+ [XEP-0266](http://xmpp.org/extensions/xep-0266.html) | None | Codecs for Jingle Audio |
370
+ [XEP-0267](http://xmpp.org/extensions/xep-0267.html) | None | Server Buddies |
371
+ [XEP-0270](http://xmpp.org/extensions/xep-0270.html) | None | XMPP Compliance Suites 2010 |
372
+ [XEP-0273](http://xmpp.org/extensions/xep-0273.html) | None | Stanza Interception and Filtering Technology (SIFT) |
373
+ [XEP-0277](http://xmpp.org/extensions/xep-0277.html) | None | Microblogging over XMPP |
374
+ [XEP-0278](http://xmpp.org/extensions/xep-0278.html) | None | Jingle Relay Nodes |
375
+ [XEP-0280](http://xmpp.org/extensions/xep-0280.html) | None | Message Carbons |
376
+ [XEP-0288](http://xmpp.org/extensions/xep-0288.html) | None | Bidirectional Server-to-Server Connections |
377
+ [XEP-0292](http://xmpp.org/extensions/xep-0292.html) | None | vCard4 Over XMPP |
378
+ [XEP-0293](http://xmpp.org/extensions/xep-0293.html) | None | Jingle RTP Feedback Negotiation |
379
+ [XEP-0294](http://xmpp.org/extensions/xep-0294.html) | None | Jingle RTP Header Extensions Negotiation |
380
+ [XEP-0295](http://xmpp.org/extensions/xep-0295.html) | None | JSON Encodings for XMPP |
381
+ [XEP-0296](http://xmpp.org/extensions/xep-0296.html) | None | Best Practices for Resource Locking |
382
+ [XEP-0297](http://xmpp.org/extensions/xep-0297.html) | None | Stanza Forwarding |
383
+ [XEP-0298](http://xmpp.org/extensions/xep-0298.html) | None | Delivering Conference Information to Jingle Participants (Coin) |
384
+ [XEP-0299](http://xmpp.org/extensions/xep-0299.html) | None | Codecs for Jingle Video |
385
+ [XEP-0300](http://xmpp.org/extensions/xep-0300.html) | None | Use of Cryptographic Hash Functions in XMPP |
386
+ [XEP-0301](http://xmpp.org/extensions/xep-0301.html) | None | In-Band Real Time Text |
387
+ [XEP-0302](http://xmpp.org/extensions/xep-0302.html) | None | XMPP Compliance Suites 2012 |
388
+ [XEP-0303](http://xmpp.org/extensions/xep-0303.html) | None | Commenting |
389
+ [XEP-0304](http://xmpp.org/extensions/xep-0304.html) | None | Whitespace Keepalive Negotiation |
390
+ [XEP-0305](http://xmpp.org/extensions/xep-0305.html) | None | XMPP Quickstart |
391
+ [XEP-0306](http://xmpp.org/extensions/xep-0306.html) | None | Extensible Status Conditions for Multi-User Chat |
392
+ [XEP-0307](http://xmpp.org/extensions/xep-0307.html) | None | Unique Room Names for Multi-User Chat |
393
+ [XEP-0308](http://xmpp.org/extensions/xep-0308.html) | None | Last Message Correction |
394
+ [XEP-0309](http://xmpp.org/extensions/xep-0309.html) | None | Service Directories |
395
+ [XEP-0310](http://xmpp.org/extensions/xep-0310.html) | None | Presence State Annotations |
396
+ [XEP-0311](http://xmpp.org/extensions/xep-0311.html) | None | MUC Fast Reconnect |
397
+ [XEP-0312](http://xmpp.org/extensions/xep-0312.html) | None | PubSub Since |
398
398
 
399
399
 
400
400
  # Contributions
@@ -6,9 +6,9 @@ module Ping
6
6
  extend Blather::DSL
7
7
  def self.run; client.run; end
8
8
 
9
- setup 'echo@jabber.local/ping', 'echo'
9
+ setup 'ping@your.jabber.server', 'password'
10
10
 
11
- status :from => Blather::JID.new('echo@jabber.local/pong') do |s|
11
+ status :from => /pong@your\.jabber\.server/ do |s|
12
12
  puts "serve!"
13
13
  say s.from, 'ping'
14
14
  end
@@ -23,7 +23,7 @@ module Pong
23
23
  extend Blather::DSL
24
24
  def self.run; client.run; end
25
25
 
26
- setup 'echo@jabber.local/pong', 'echo'
26
+ setup 'pong@your.jabber.server', 'password'
27
27
  message :chat?, :body => 'ping' do |m|
28
28
  puts "pong!"
29
29
  say m.from, 'pong'
@@ -168,7 +168,7 @@ module Blather
168
168
 
169
169
  # Close the connection
170
170
  def close
171
- self.stream.close_connection_after_writing
171
+ EM.next_tick { self.stream.close_connection_after_writing }
172
172
  end
173
173
 
174
174
  # @private
@@ -85,8 +85,11 @@ module Blather
85
85
  autoload :PubSub, File.expand_path(File.join(File.dirname(__FILE__), *%w[dsl pubsub]))
86
86
 
87
87
  def self.append_features(o)
88
+ # Generate a method for every stanza handler that exists.
88
89
  Blather::Stanza.handler_list.each do |handler_name|
89
- o.__send__ :remove_method, handler_name if !o.is_a?(Class) && o.method_defined?(handler_name)
90
+ o.__send__ :define_method, handler_name do |*args, &callback|
91
+ handle handler_name, *args, &callback
92
+ end
90
93
  end
91
94
  super
92
95
  end
@@ -307,14 +310,5 @@ module Blather
307
310
  end
308
311
  client.write client.caps.c
309
312
  end
310
-
311
- # Generate a method for every stanza handler that exists.
312
- Blather::Stanza.handler_list.each do |handler_name|
313
- module_eval <<-METHOD, __FILE__, __LINE__
314
- def #{handler_name}(*args, &callback)
315
- handle :#{handler_name}, *args, &callback
316
- end
317
- METHOD
318
- end
319
313
  end # DSL
320
314
  end # Blather
@@ -29,7 +29,7 @@ class Stream
29
29
  bind = @features.at_xpath('ns:bind', ns: 'urn:ietf:params:xml:ns:xmpp-bind')
30
30
  session = @features.at_xpath('ns:session', ns: 'urn:ietf:params:xml:ns:xmpp-session')
31
31
  if bind && session && @features.children.last != session
32
- @features.children.after session
32
+ bind.after session
33
33
  end
34
34
 
35
35
  @idx = @idx ? @idx+1 : 0
@@ -1,3 +1,3 @@
1
1
  module Blather
2
- VERSION = '0.8.5'
2
+ VERSION = '0.8.6'
3
3
  end
@@ -83,6 +83,7 @@ describe Blather::Client do
83
83
 
84
84
  it 'writes to the connection the closes when #close is called' do
85
85
  stream.expects(:close_connection_after_writing)
86
+ EM.stubs(:next_tick).yields
86
87
  subject.setup 'me.com', 'secret'
87
88
  subject.post_init stream, Blather::JID.new('me.com')
88
89
  subject.close
@@ -1,6 +1,8 @@
1
1
  require 'spec_helper'
2
2
  require 'blather/client/dsl'
3
3
 
4
+ include Blather::DSL
5
+
4
6
  describe Blather::DSL do
5
7
  before do
6
8
  @client = Blather::Client.new
@@ -263,4 +265,19 @@ describe Blather::DSL do
263
265
  @dsl.pubsub.should be_instance_of Blather::DSL::PubSub
264
266
  @dsl.pubsub.host.should == jid.domain
265
267
  end
268
+
269
+ context "included in a class which defines methods which collide with handler names" do
270
+ class CollisionTarget
271
+ include Blather::DSL
272
+
273
+ def presence
274
+ :ghostly
275
+ end
276
+ end
277
+
278
+ it "should override the handlers" do
279
+ target = CollisionTarget.new
280
+ target.presence.should be :ghostly
281
+ end
282
+ end
266
283
  end
@@ -911,6 +911,36 @@ describe Blather::Stream::Client do
911
911
  end
912
912
  end
913
913
 
914
+ it 'will attempt to establish a session immediately after a bind' do
915
+ state = nil
916
+ mocked_server(3) do |val, server|
917
+ case state
918
+ when nil
919
+ state = :started
920
+ server.send_data "<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'>"
921
+ server.send_data "<stream:features><session xmlns='urn:ietf:params:xml:ns:xmpp-session' /><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/><register xmlns='http://jabber.org/features/iq-register'/></stream:features>"
922
+ val.should match(/stream:stream/)
923
+
924
+ when :started
925
+ state = :complete
926
+ doc = parse_stanza val
927
+ doc.find('/iq[@type="set"]/bind_ns:bind', :bind_ns => Blather::Stream::Resource::BIND_NS).should_not be_empty
928
+ server.send_data "<iq type='result' id='#{doc.find_first('iq')['id']}'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid>#{client.jid}</jid></bind></iq>"
929
+ true
930
+
931
+ when :complete
932
+ doc = parse_stanza val
933
+ doc.find('/iq[@type="set"]/sess_ns:session', :sess_ns => Blather::Stream::Session::SESSION_NS).should_not be_empty
934
+ EM.stop
935
+ true
936
+
937
+ else
938
+ EM.stop
939
+ false
940
+
941
+ end
942
+ end
943
+ end
914
944
 
915
945
  it 'will return an error if session establishment errors out' do
916
946
  client.expects(:receive_data).with do |n|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blather
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.5
4
+ version: 0.8.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Smick
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-01 00:00:00.000000000 Z
12
+ date: 2013-08-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: eventmachine