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 +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +153 -153
- data/examples/ping_pong.rb +3 -3
- data/lib/blather/client/client.rb +1 -1
- data/lib/blather/client/dsl.rb +4 -10
- data/lib/blather/stream/features.rb +1 -1
- data/lib/blather/version.rb +1 -1
- data/spec/blather/client/client_spec.rb +1 -0
- data/spec/blather/client/dsl_spec.rb +17 -0
- data/spec/blather/stream/client_spec.rb +30 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 14b758953e449e83539a7b2f7056f9f4a755a247
|
4
|
+
data.tar.gz: fc6cb44dd2015306f8c1e5b1a6beb8d2e9d132c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba7f5d07dce4c3f114b33a998c42a8f5db5f958fb5a38713b25219417bcbe5f42c1467093c58731d390dd062f49ce1c1e7a055d6ccfedbaddd2f1831211718da
|
7
|
+
data.tar.gz: 79d8bed1bbe6816bc84c66aebeb69a086e21bc30dddfc294f01b621d9f30a0f1c1dc3d58ec447e29c91759ed23797b8ab145a73620a95e4a41fc5b04a42c2389
|
data/CHANGELOG.md
CHANGED
@@ -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
|
246
|
-
|
247
|
-
RFC 6120
|
248
|
-
RFC 6121
|
249
|
-
RFC 6122
|
250
|
-
XEP-0001
|
251
|
-
XEP-0002
|
252
|
-
XEP-0004
|
253
|
-
XEP-0009
|
254
|
-
XEP-0012
|
255
|
-
XEP-0013
|
256
|
-
XEP-0016
|
257
|
-
XEP-0019
|
258
|
-
XEP-0020
|
259
|
-
XEP-0027
|
260
|
-
XEP-0030
|
261
|
-
XEP-0033
|
262
|
-
XEP-0045
|
263
|
-
XEP-0047
|
264
|
-
XEP-0048
|
265
|
-
XEP-0049
|
266
|
-
XEP-0050
|
267
|
-
XEP-0053
|
268
|
-
XEP-0054
|
269
|
-
XEP-0055
|
270
|
-
XEP-0059
|
271
|
-
XEP-0060
|
272
|
-
XEP-0065
|
273
|
-
XEP-0066
|
274
|
-
XEP-0068
|
275
|
-
XEP-0070
|
276
|
-
XEP-0071
|
277
|
-
XEP-0072
|
278
|
-
XEP-0076
|
279
|
-
XEP-0077
|
280
|
-
XEP-0079
|
281
|
-
XEP-0080
|
282
|
-
XEP-0082
|
283
|
-
XEP-0083
|
284
|
-
XEP-0084
|
285
|
-
XEP-0085
|
286
|
-
XEP-0092
|
287
|
-
XEP-0095
|
288
|
-
XEP-0096
|
289
|
-
XEP-0100
|
290
|
-
XEP-0106
|
291
|
-
XEP-0107
|
292
|
-
XEP-0108
|
293
|
-
XEP-0114
|
294
|
-
XEP-0115
|
295
|
-
XEP-0118
|
296
|
-
XEP-0122
|
297
|
-
XEP-0124
|
298
|
-
XEP-0126
|
299
|
-
XEP-0127
|
300
|
-
XEP-0128
|
301
|
-
XEP-0130
|
302
|
-
XEP-0131
|
303
|
-
XEP-0132
|
304
|
-
XEP-0133
|
305
|
-
XEP-0134
|
306
|
-
XEP-0136
|
307
|
-
XEP-0137
|
308
|
-
XEP-0138
|
309
|
-
XEP-0141
|
310
|
-
XEP-0143
|
311
|
-
XEP-0144
|
312
|
-
XEP-0145
|
313
|
-
XEP-0146
|
314
|
-
XEP-0147
|
315
|
-
XEP-0148
|
316
|
-
XEP-0149
|
317
|
-
XEP-0153
|
318
|
-
XEP-0155
|
319
|
-
XEP-0156
|
320
|
-
XEP-0157
|
321
|
-
XEP-0158
|
322
|
-
XEP-0160
|
323
|
-
XEP-0163
|
324
|
-
XEP-0166
|
325
|
-
XEP-0167
|
326
|
-
XEP-0169
|
327
|
-
XEP-0170
|
328
|
-
XEP-0171
|
329
|
-
XEP-0172
|
330
|
-
XEP-0174
|
331
|
-
XEP-0175
|
332
|
-
XEP-0176
|
333
|
-
XEP-0177
|
334
|
-
XEP-0178
|
335
|
-
XEP-0182
|
336
|
-
XEP-0183
|
337
|
-
XEP-0184
|
338
|
-
XEP-0185
|
339
|
-
XEP-0191
|
340
|
-
XEP-0198
|
341
|
-
XEP-0199
|
342
|
-
XEP-0201
|
343
|
-
XEP-0202
|
344
|
-
XEP-0203
|
345
|
-
XEP-0205
|
346
|
-
XEP-0206
|
347
|
-
XEP-0207
|
348
|
-
XEP-0220
|
349
|
-
XEP-0221
|
350
|
-
XEP-0222
|
351
|
-
XEP-0223
|
352
|
-
XEP-0224
|
353
|
-
XEP-0227
|
354
|
-
XEP-0229
|
355
|
-
XEP-0231
|
356
|
-
XEP-0233
|
357
|
-
XEP-0234
|
358
|
-
XEP-0239
|
359
|
-
XEP-0242
|
360
|
-
XEP-0243
|
361
|
-
XEP-0245
|
362
|
-
XEP-0249
|
363
|
-
XEP-0256
|
364
|
-
XEP-0258
|
365
|
-
XEP-0260
|
366
|
-
XEP-0261
|
367
|
-
XEP-0262
|
368
|
-
XEP-0263
|
369
|
-
XEP-0266
|
370
|
-
XEP-0267
|
371
|
-
XEP-0270
|
372
|
-
XEP-0273
|
373
|
-
XEP-0277
|
374
|
-
XEP-0278
|
375
|
-
XEP-0280
|
376
|
-
XEP-0288
|
377
|
-
XEP-0292
|
378
|
-
XEP-0293
|
379
|
-
XEP-0294
|
380
|
-
XEP-0295
|
381
|
-
XEP-0296
|
382
|
-
XEP-0297
|
383
|
-
XEP-0298
|
384
|
-
XEP-0299
|
385
|
-
XEP-0300
|
386
|
-
XEP-0301
|
387
|
-
XEP-0302
|
388
|
-
XEP-0303
|
389
|
-
XEP-0304
|
390
|
-
XEP-0305
|
391
|
-
XEP-0306
|
392
|
-
XEP-0307
|
393
|
-
XEP-0308
|
394
|
-
XEP-0309
|
395
|
-
XEP-0310
|
396
|
-
XEP-0311
|
397
|
-
XEP-0312
|
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
|
data/examples/ping_pong.rb
CHANGED
@@ -6,9 +6,9 @@ module Ping
|
|
6
6
|
extend Blather::DSL
|
7
7
|
def self.run; client.run; end
|
8
8
|
|
9
|
-
setup '
|
9
|
+
setup 'ping@your.jabber.server', 'password'
|
10
10
|
|
11
|
-
status :from =>
|
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 '
|
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'
|
data/lib/blather/client/dsl.rb
CHANGED
@@ -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__ :
|
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
|
-
|
32
|
+
bind.after session
|
33
33
|
end
|
34
34
|
|
35
35
|
@idx = @idx ? @idx+1 : 0
|
data/lib/blather/version.rb
CHANGED
@@ -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.
|
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-
|
12
|
+
date: 2013-08-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: eventmachine
|