shingara-blather 0.4.8

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.
Files changed (100) hide show
  1. data/LICENSE +22 -0
  2. data/README.md +162 -0
  3. data/examples/echo.rb +18 -0
  4. data/examples/execute.rb +16 -0
  5. data/examples/ping_pong.rb +37 -0
  6. data/examples/print_hierarchy.rb +76 -0
  7. data/examples/rosterprint.rb +14 -0
  8. data/examples/stream_only.rb +27 -0
  9. data/examples/xmpp4r/echo.rb +35 -0
  10. data/lib/blather/client/client.rb +310 -0
  11. data/lib/blather/client/dsl/pubsub.rb +170 -0
  12. data/lib/blather/client/dsl.rb +264 -0
  13. data/lib/blather/client.rb +87 -0
  14. data/lib/blather/core_ext/nokogiri.rb +40 -0
  15. data/lib/blather/errors/sasl_error.rb +43 -0
  16. data/lib/blather/errors/stanza_error.rb +107 -0
  17. data/lib/blather/errors/stream_error.rb +82 -0
  18. data/lib/blather/errors.rb +69 -0
  19. data/lib/blather/jid.rb +142 -0
  20. data/lib/blather/roster.rb +111 -0
  21. data/lib/blather/roster_item.rb +122 -0
  22. data/lib/blather/stanza/disco/disco_info.rb +176 -0
  23. data/lib/blather/stanza/disco/disco_items.rb +132 -0
  24. data/lib/blather/stanza/disco.rb +25 -0
  25. data/lib/blather/stanza/iq/query.rb +53 -0
  26. data/lib/blather/stanza/iq/roster.rb +179 -0
  27. data/lib/blather/stanza/iq.rb +138 -0
  28. data/lib/blather/stanza/message.rb +332 -0
  29. data/lib/blather/stanza/presence/status.rb +212 -0
  30. data/lib/blather/stanza/presence/subscription.rb +101 -0
  31. data/lib/blather/stanza/presence.rb +163 -0
  32. data/lib/blather/stanza/pubsub/affiliations.rb +79 -0
  33. data/lib/blather/stanza/pubsub/create.rb +65 -0
  34. data/lib/blather/stanza/pubsub/errors.rb +18 -0
  35. data/lib/blather/stanza/pubsub/event.rb +123 -0
  36. data/lib/blather/stanza/pubsub/items.rb +103 -0
  37. data/lib/blather/stanza/pubsub/publish.rb +103 -0
  38. data/lib/blather/stanza/pubsub/retract.rb +92 -0
  39. data/lib/blather/stanza/pubsub/subscribe.rb +68 -0
  40. data/lib/blather/stanza/pubsub/subscription.rb +134 -0
  41. data/lib/blather/stanza/pubsub/subscriptions.rb +81 -0
  42. data/lib/blather/stanza/pubsub/unsubscribe.rb +68 -0
  43. data/lib/blather/stanza/pubsub.rb +129 -0
  44. data/lib/blather/stanza/pubsub_owner/delete.rb +52 -0
  45. data/lib/blather/stanza/pubsub_owner/purge.rb +52 -0
  46. data/lib/blather/stanza/pubsub_owner.rb +51 -0
  47. data/lib/blather/stanza.rb +149 -0
  48. data/lib/blather/stream/client.rb +31 -0
  49. data/lib/blather/stream/component.rb +38 -0
  50. data/lib/blather/stream/features/resource.rb +63 -0
  51. data/lib/blather/stream/features/sasl.rb +187 -0
  52. data/lib/blather/stream/features/session.rb +44 -0
  53. data/lib/blather/stream/features/tls.rb +28 -0
  54. data/lib/blather/stream/features.rb +53 -0
  55. data/lib/blather/stream/parser.rb +102 -0
  56. data/lib/blather/stream.rb +231 -0
  57. data/lib/blather/xmpp_node.rb +218 -0
  58. data/lib/blather.rb +78 -0
  59. data/spec/blather/client/client_spec.rb +559 -0
  60. data/spec/blather/client/dsl/pubsub_spec.rb +462 -0
  61. data/spec/blather/client/dsl_spec.rb +143 -0
  62. data/spec/blather/core_ext/nokogiri_spec.rb +83 -0
  63. data/spec/blather/errors/sasl_error_spec.rb +33 -0
  64. data/spec/blather/errors/stanza_error_spec.rb +129 -0
  65. data/spec/blather/errors/stream_error_spec.rb +108 -0
  66. data/spec/blather/errors_spec.rb +33 -0
  67. data/spec/blather/jid_spec.rb +87 -0
  68. data/spec/blather/roster_item_spec.rb +96 -0
  69. data/spec/blather/roster_spec.rb +103 -0
  70. data/spec/blather/stanza/discos/disco_info_spec.rb +226 -0
  71. data/spec/blather/stanza/discos/disco_items_spec.rb +148 -0
  72. data/spec/blather/stanza/iq/query_spec.rb +64 -0
  73. data/spec/blather/stanza/iq/roster_spec.rb +140 -0
  74. data/spec/blather/stanza/iq_spec.rb +45 -0
  75. data/spec/blather/stanza/message_spec.rb +132 -0
  76. data/spec/blather/stanza/presence/status_spec.rb +132 -0
  77. data/spec/blather/stanza/presence/subscription_spec.rb +105 -0
  78. data/spec/blather/stanza/presence_spec.rb +66 -0
  79. data/spec/blather/stanza/pubsub/affiliations_spec.rb +57 -0
  80. data/spec/blather/stanza/pubsub/create_spec.rb +56 -0
  81. data/spec/blather/stanza/pubsub/event_spec.rb +84 -0
  82. data/spec/blather/stanza/pubsub/items_spec.rb +79 -0
  83. data/spec/blather/stanza/pubsub/publish_spec.rb +83 -0
  84. data/spec/blather/stanza/pubsub/retract_spec.rb +75 -0
  85. data/spec/blather/stanza/pubsub/subscribe_spec.rb +61 -0
  86. data/spec/blather/stanza/pubsub/subscription_spec.rb +97 -0
  87. data/spec/blather/stanza/pubsub/subscriptions_spec.rb +59 -0
  88. data/spec/blather/stanza/pubsub/unsubscribe_spec.rb +61 -0
  89. data/spec/blather/stanza/pubsub_owner/delete_spec.rb +50 -0
  90. data/spec/blather/stanza/pubsub_owner/purge_spec.rb +50 -0
  91. data/spec/blather/stanza/pubsub_owner_spec.rb +27 -0
  92. data/spec/blather/stanza/pubsub_spec.rb +67 -0
  93. data/spec/blather/stanza_spec.rb +116 -0
  94. data/spec/blather/stream/client_spec.rb +1011 -0
  95. data/spec/blather/stream/component_spec.rb +95 -0
  96. data/spec/blather/stream/parser_spec.rb +145 -0
  97. data/spec/blather/xmpp_node_spec.rb +231 -0
  98. data/spec/fixtures/pubsub.rb +311 -0
  99. data/spec/spec_helper.rb +43 -0
  100. metadata +249 -0
@@ -0,0 +1,311 @@
1
+ def items_all_nodes_xml
2
+ <<-ITEMS
3
+ <iq type='result'
4
+ from='pubsub.shakespeare.lit'
5
+ to='francisco@denmark.lit/barracks'
6
+ id='items1'>
7
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
8
+ <items node='princely_musings'>
9
+ <item id='368866411b877c30064a5f62b917cffe'>
10
+ <entry xmlns='http://www.w3.org/2005/Atom'>
11
+ <title>The Uses of This World</title>
12
+ <summary>
13
+ O, that this too too solid flesh would melt
14
+ Thaw and resolve itself into a dew!
15
+ </summary>
16
+ <link rel='alternate' type='text/html'
17
+ href='http://denmark.lit/2003/12/13/atom03'/>
18
+ <id>tag:denmark.lit,2003:entry-32396</id>
19
+ <published>2003-12-12T17:47:23Z</published>
20
+ <updated>2003-12-12T17:47:23Z</updated>
21
+ </entry>
22
+ </item>
23
+ <item id='3300659945416e274474e469a1f0154c'>
24
+ <entry xmlns='http://www.w3.org/2005/Atom'>
25
+ <title>Ghostly Encounters</title>
26
+ <summary>
27
+ O all you host of heaven! O earth! what else?
28
+ And shall I couple hell? O, fie! Hold, hold, my heart;
29
+ And you, my sinews, grow not instant old,
30
+ But bear me stiffly up. Remember thee!
31
+ </summary>
32
+ <link rel='alternate' type='text/html'
33
+ href='http://denmark.lit/2003/12/13/atom03'/>
34
+ <id>tag:denmark.lit,2003:entry-32396</id>
35
+ <published>2003-12-12T23:21:34Z</published>
36
+ <updated>2003-12-12T23:21:34Z</updated>
37
+ </entry>
38
+ </item>
39
+ <item id='4e30f35051b7b8b42abe083742187228'>
40
+ <entry xmlns='http://www.w3.org/2005/Atom'>
41
+ <title>Alone</title>
42
+ <summary>
43
+ Now I am alone.
44
+ O, what a rogue and peasant slave am I!
45
+ </summary>
46
+ <link rel='alternate' type='text/html'
47
+ href='http://denmark.lit/2003/12/13/atom03'/>
48
+ <id>tag:denmark.lit,2003:entry-32396</id>
49
+ <published>2003-12-13T11:09:53Z</published>
50
+ <updated>2003-12-13T11:09:53Z</updated>
51
+ </entry>
52
+ </item>
53
+ <item id='ae890ac52d0df67ed7cfdf51b644e901'>
54
+ <entry xmlns='http://www.w3.org/2005/Atom'>
55
+ <title>Soliloquy</title>
56
+ <summary>
57
+ To be, or not to be: that is the question:
58
+ Whether 'tis nobler in the mind to suffer
59
+ The slings and arrows of outrageous fortune,
60
+ Or to take arms against a sea of troubles,
61
+ And by opposing end them?
62
+ </summary>
63
+ <link rel='alternate' type='text/html'
64
+ href='http://denmark.lit/2003/12/13/atom03'/>
65
+ <id>tag:denmark.lit,2003:entry-32397</id>
66
+ <published>2003-12-13T18:30:02Z</published>
67
+ <updated>2003-12-13T18:30:02Z</updated>
68
+ </entry>
69
+ </item>
70
+ </items>
71
+ </pubsub>
72
+ </iq>
73
+ ITEMS
74
+ end
75
+
76
+ def pubsub_items_some_xml
77
+ <<-ITEMS
78
+ <iq type='result'
79
+ from='pubsub.shakespeare.lit'
80
+ to='francisco@denmark.lit/barracks'
81
+ id='items1'>
82
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
83
+ <items node='princely_musings'>
84
+ <item id='368866411b877c30064a5f62b917cffe'>
85
+ <entry xmlns='http://www.w3.org/2005/Atom'>
86
+ <title>The Uses of This World</title>
87
+ <summary>
88
+ O, that this too too solid flesh would melt
89
+ Thaw and resolve itself into a dew!
90
+ </summary>
91
+ <link rel='alternate' type='text/html'
92
+ href='http://denmark.lit/2003/12/13/atom03'/>
93
+ <id>tag:denmark.lit,2003:entry-32396</id>
94
+ <published>2003-12-12T17:47:23Z</published>
95
+ <updated>2003-12-12T17:47:23Z</updated>
96
+ </entry>
97
+ </item>
98
+ <item id='3300659945416e274474e469a1f0154c'>
99
+ <entry xmlns='http://www.w3.org/2005/Atom'>
100
+ <title>Ghostly Encounters</title>
101
+ <summary>
102
+ O all you host of heaven! O earth! what else?
103
+ And shall I couple hell? O, fie! Hold, hold, my heart;
104
+ And you, my sinews, grow not instant old,
105
+ But bear me stiffly up. Remember thee!
106
+ </summary>
107
+ <link rel='alternate' type='text/html'
108
+ href='http://denmark.lit/2003/12/13/atom03'/>
109
+ <id>tag:denmark.lit,2003:entry-32396</id>
110
+ <published>2003-12-12T23:21:34Z</published>
111
+ <updated>2003-12-12T23:21:34Z</updated>
112
+ </entry>
113
+ </item>
114
+ <item id='4e30f35051b7b8b42abe083742187228'>
115
+ <entry xmlns='http://www.w3.org/2005/Atom'>
116
+ <title>Alone</title>
117
+ <summary>
118
+ Now I am alone.
119
+ O, what a rogue and peasant slave am I!
120
+ </summary>
121
+ <link rel='alternate' type='text/html'
122
+ href='http://denmark.lit/2003/12/13/atom03'/>
123
+ <id>tag:denmark.lit,2003:entry-32396</id>
124
+ <published>2003-12-13T11:09:53Z</published>
125
+ <updated>2003-12-13T11:09:53Z</updated>
126
+ </entry>
127
+ </item>
128
+ </items>
129
+ <set xmlns='http://jabber.org/protocol/rsm'>
130
+ <first index='0'>368866411b877c30064a5f62b917cffe</first>
131
+ <last>4e30f35051b7b8b42abe083742187228</last>
132
+ <count>19</count>
133
+ </set>
134
+ </pubsub>
135
+ </iq>
136
+ ITEMS
137
+ end
138
+
139
+ def affiliations_xml
140
+ <<-NODE
141
+ <iq type='result'
142
+ from='pubsub.shakespeare.lit'
143
+ to='francisco@denmark.lit'
144
+ id='affil1'>
145
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
146
+ <affiliations>
147
+ <affiliation node='node1' affiliation='owner'/>
148
+ <affiliation node='node2' affiliation='owner'/>
149
+ <affiliation node='node3' affiliation='publisher'/>
150
+ <affiliation node='node4' affiliation='outcast'/>
151
+ <affiliation node='node5' affiliation='member'/>
152
+ <affiliation node='node6' affiliation='none'/>
153
+ </affiliations>
154
+ </pubsub>
155
+ </iq>
156
+ NODE
157
+ end
158
+
159
+ def subscriptions_xml
160
+ <<-NODE
161
+ <iq type='result'
162
+ from='pubsub.shakespeare.lit'
163
+ to='francisco@denmark.lit'
164
+ id='affil1'>
165
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
166
+ <subscriptions>
167
+ <subscription node='node1' jid='francisco@denmark.lit' subscription='subscribed'/>
168
+ <subscription node='node2' jid='francisco@denmark.lit' subscription='subscribed'/>
169
+ <subscription node='node3' jid='francisco@denmark.lit' subscription='unconfigured'/>
170
+ <subscription node='node4' jid='francisco@denmark.lit' subscription='pending'/>
171
+ <subscription node='node5' jid='francisco@denmark.lit' subscription='none'/>
172
+ </subscriptions>
173
+ </pubsub>
174
+ </iq>
175
+ NODE
176
+ end
177
+
178
+ def event_with_payload_xml
179
+ <<-NODE
180
+ <message from='pubsub.shakespeare.lit' to='francisco@denmark.lit' id='foo'>
181
+ <event xmlns='http://jabber.org/protocol/pubsub#event'>
182
+ <items node='princely_musings'>
183
+ <item id='ae890ac52d0df67ed7cfdf51b644e901'>
184
+ <entry xmlns='http://www.w3.org/2005/Atom'>
185
+ <title>Soliloquy</title>
186
+ <summary>
187
+ To be, or not to be: that is the question:
188
+ Whether 'tis nobler in the mind to suffer
189
+ The slings and arrows of outrageous fortune,
190
+ Or to take arms against a sea of troubles,
191
+ And by opposing end them?
192
+ </summary>
193
+ <link rel='alternate' type='text/html'
194
+ href='http://denmark.lit/2003/12/13/atom03'/>
195
+ <id>tag:denmark.lit,2003:entry-32397</id>
196
+ <published>2003-12-13T18:30:02Z</published>
197
+ <updated>2003-12-13T18:30:02Z</updated>
198
+ </entry>
199
+ </item>
200
+ </items>
201
+ </event>
202
+ </message>
203
+ NODE
204
+ end
205
+
206
+ def event_notification_xml
207
+ <<-NODE
208
+ <message from='pubsub.shakespeare.lit' to='francisco@denmark.lit' id='foo'>
209
+ <event xmlns='http://jabber.org/protocol/pubsub#event'>
210
+ <items node='princely_musings'>
211
+ <item id='ae890ac52d0df67ed7cfdf51b644e901'/>
212
+ </items>
213
+ </event>
214
+ </message>
215
+ NODE
216
+ end
217
+
218
+ def event_subids_xml
219
+ <<-NODE
220
+ <message from='pubsub.shakespeare.lit' to='francisco@denmark.lit' id='foo'>
221
+ <event xmlns='http://jabber.org/protocol/pubsub#event'>
222
+ <items node='princely_musings'>
223
+ <item id='ae890ac52d0df67ed7cfdf51b644e901'/>
224
+ </items>
225
+ </event>
226
+ <headers xmlns='http://jabber.org/protocol/shim'>
227
+ <header name='SubID'>123-abc</header>
228
+ <header name='SubID'>004-yyy</header>
229
+ </headers>
230
+ </message>
231
+ NODE
232
+ end
233
+
234
+ def unsubscribe_xml
235
+ <<-NODE
236
+ <iq type='error'
237
+ from='pubsub.shakespeare.lit'
238
+ to='francisco@denmark.lit/barracks'
239
+ id='unsub1'>
240
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
241
+ <unsubscribe node='princely_musings' jid='francisco@denmark.lit'/>
242
+ </pubsub>
243
+ <error type='modify'>
244
+ <bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
245
+ <subid-required xmlns='http://jabber.org/protocol/pubsub#errors'/>
246
+ </error>
247
+ </iq>
248
+ NODE
249
+ end
250
+
251
+ def subscription_xml
252
+ <<-NODE
253
+ <iq type='result'
254
+ from='pubsub.shakespeare.lit'
255
+ to='francisco@denmark.lit/barracks'
256
+ id='sub1'>
257
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
258
+ <subscription
259
+ node='princely_musings'
260
+ jid='francisco@denmark.lit'
261
+ subid='ba49252aaa4f5d320c24d3766f0bdcade78c78d3'
262
+ subscription='subscribed'/>
263
+ </pubsub>
264
+ </iq>
265
+ NODE
266
+ end
267
+
268
+ def subscribe_xml
269
+ <<-NODE
270
+ <iq type='set'
271
+ from='francisco@denmark.lit/barracks'
272
+ to='pubsub.shakespeare.lit'
273
+ id='sub1'>
274
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
275
+ <subscribe
276
+ node='princely_musings'
277
+ jid='francisco@denmark.lit'/>
278
+ </pubsub>
279
+ </iq>
280
+ NODE
281
+ end
282
+
283
+ def publish_xml
284
+ <<-NODE
285
+ <iq type='result'
286
+ from='pubsub.shakespeare.lit'
287
+ to='hamlet@denmark.lit/blogbot'
288
+ id='publish1'>
289
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
290
+ <publish node='princely_musings'>
291
+ <item id='ae890ac52d0df67ed7cfdf51b644e901'/>
292
+ </publish>
293
+ </pubsub>
294
+ </iq>
295
+ NODE
296
+ end
297
+
298
+ def retract_xml
299
+ <<-NODE
300
+ <iq type='set'
301
+ from='hamlet@denmark.lit/elsinore'
302
+ to='pubsub.shakespeare.lit'
303
+ id='retract1'>
304
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
305
+ <retract node='princely_musings'>
306
+ <item id='ae890ac52d0df67ed7cfdf51b644e901'/>
307
+ </retract>
308
+ </pubsub>
309
+ </iq>
310
+ NODE
311
+ end
@@ -0,0 +1,43 @@
1
+ $:.unshift File.expand_path(File.join(File.dirname(__FILE__), '..'))
2
+ $:.unshift File.expand_path(File.join(File.dirname(__FILE__), *%w[.. lib]))
3
+
4
+ require 'blather'
5
+ require 'rubygems'
6
+ require 'minitest/spec'
7
+ require 'mocha'
8
+ require 'mocha/expectation_error'
9
+
10
+ MiniTest::Unit.autorun
11
+
12
+ module MiniTest
13
+ require 'pathname' if MINI_DIR =~ %r{^./}
14
+
15
+ module Assertions
16
+ def assert_change(stmt, args = {}, msg = nil)
17
+ msg ||= proc {
18
+ m = "Expected #{stmt} to change"
19
+ m << " by #{mu_pp args[:by]}" if args[:by]
20
+ m << (args[:from] ? " from #{mu_pp args[:from]}" : '') + " to #{mu_pp args[:to]}" if args[:to]
21
+ m
22
+ }.call
23
+
24
+ init_val = eval(stmt)
25
+ yield
26
+ new_val = eval(stmt)
27
+
28
+ assert_equal(args[:by], (new_val - init_val), msg) if args[:by]
29
+ assert_equal([args[:from], args[:to]], [(init_val if args[:from]), new_val], msg) if args[:to]
30
+ refute_equal(init_val, new_val, msg) if args.empty?
31
+ end
32
+ end
33
+ end
34
+
35
+ class Object
36
+ def must_change *args, &block
37
+ return MiniTest::Spec.current.assert_change(*args, &self)
38
+ end
39
+ end
40
+
41
+ def parse_stanza(xml)
42
+ Nokogiri::XML.parse xml
43
+ end
metadata ADDED
@@ -0,0 +1,249 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: shingara-blather
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 4
8
+ - 8
9
+ version: 0.4.8
10
+ platform: ruby
11
+ authors:
12
+ - Jeff Smick
13
+ - Cyril Mougel
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-05-18 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: eventmachine
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ segments:
30
+ - 0
31
+ - 12
32
+ - 6
33
+ version: 0.12.6
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: nokogiri
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ segments:
45
+ - 1
46
+ - 4
47
+ - 0
48
+ version: 1.4.0
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: active_support
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ segments:
60
+ - 3
61
+ - 0
62
+ - 0
63
+ - beta3
64
+ version: 3.0.0.beta3
65
+ type: :runtime
66
+ version_requirements: *id003
67
+ description: An XMPP DSL for Ruby written on top of EventMachine and Nokogiri
68
+ email: sprsquish@gmail.com
69
+ executables: []
70
+
71
+ extensions: []
72
+
73
+ extra_rdoc_files:
74
+ - LICENSE
75
+ - README.md
76
+ files:
77
+ - examples/echo.rb
78
+ - examples/execute.rb
79
+ - examples/ping_pong.rb
80
+ - examples/print_hierarchy.rb
81
+ - examples/rosterprint.rb
82
+ - examples/stream_only.rb
83
+ - examples/xmpp4r/echo.rb
84
+ - lib/blather.rb
85
+ - lib/blather/client.rb
86
+ - lib/blather/client/client.rb
87
+ - lib/blather/client/dsl.rb
88
+ - lib/blather/client/dsl/pubsub.rb
89
+ - lib/blather/core_ext/nokogiri.rb
90
+ - lib/blather/errors.rb
91
+ - lib/blather/errors/sasl_error.rb
92
+ - lib/blather/errors/stanza_error.rb
93
+ - lib/blather/errors/stream_error.rb
94
+ - lib/blather/jid.rb
95
+ - lib/blather/roster.rb
96
+ - lib/blather/roster_item.rb
97
+ - lib/blather/stanza.rb
98
+ - lib/blather/stanza/disco.rb
99
+ - lib/blather/stanza/disco/disco_info.rb
100
+ - lib/blather/stanza/disco/disco_items.rb
101
+ - lib/blather/stanza/iq.rb
102
+ - lib/blather/stanza/iq/query.rb
103
+ - lib/blather/stanza/iq/roster.rb
104
+ - lib/blather/stanza/message.rb
105
+ - lib/blather/stanza/presence.rb
106
+ - lib/blather/stanza/presence/status.rb
107
+ - lib/blather/stanza/presence/subscription.rb
108
+ - lib/blather/stanza/pubsub.rb
109
+ - lib/blather/stanza/pubsub/affiliations.rb
110
+ - lib/blather/stanza/pubsub/create.rb
111
+ - lib/blather/stanza/pubsub/errors.rb
112
+ - lib/blather/stanza/pubsub/event.rb
113
+ - lib/blather/stanza/pubsub/items.rb
114
+ - lib/blather/stanza/pubsub/publish.rb
115
+ - lib/blather/stanza/pubsub/retract.rb
116
+ - lib/blather/stanza/pubsub/subscribe.rb
117
+ - lib/blather/stanza/pubsub/subscription.rb
118
+ - lib/blather/stanza/pubsub/subscriptions.rb
119
+ - lib/blather/stanza/pubsub/unsubscribe.rb
120
+ - lib/blather/stanza/pubsub_owner.rb
121
+ - lib/blather/stanza/pubsub_owner/delete.rb
122
+ - lib/blather/stanza/pubsub_owner/purge.rb
123
+ - lib/blather/stream.rb
124
+ - lib/blather/stream/client.rb
125
+ - lib/blather/stream/component.rb
126
+ - lib/blather/stream/features.rb
127
+ - lib/blather/stream/features/resource.rb
128
+ - lib/blather/stream/features/sasl.rb
129
+ - lib/blather/stream/features/session.rb
130
+ - lib/blather/stream/features/tls.rb
131
+ - lib/blather/stream/parser.rb
132
+ - lib/blather/xmpp_node.rb
133
+ - LICENSE
134
+ - README.md
135
+ - spec/blather/client/client_spec.rb
136
+ - spec/blather/client/dsl/pubsub_spec.rb
137
+ - spec/blather/client/dsl_spec.rb
138
+ - spec/blather/core_ext/nokogiri_spec.rb
139
+ - spec/blather/errors/sasl_error_spec.rb
140
+ - spec/blather/errors/stanza_error_spec.rb
141
+ - spec/blather/errors/stream_error_spec.rb
142
+ - spec/blather/errors_spec.rb
143
+ - spec/blather/jid_spec.rb
144
+ - spec/blather/roster_item_spec.rb
145
+ - spec/blather/roster_spec.rb
146
+ - spec/blather/stanza/discos/disco_info_spec.rb
147
+ - spec/blather/stanza/discos/disco_items_spec.rb
148
+ - spec/blather/stanza/iq/query_spec.rb
149
+ - spec/blather/stanza/iq/roster_spec.rb
150
+ - spec/blather/stanza/iq_spec.rb
151
+ - spec/blather/stanza/message_spec.rb
152
+ - spec/blather/stanza/presence/status_spec.rb
153
+ - spec/blather/stanza/presence/subscription_spec.rb
154
+ - spec/blather/stanza/presence_spec.rb
155
+ - spec/blather/stanza/pubsub/affiliations_spec.rb
156
+ - spec/blather/stanza/pubsub/create_spec.rb
157
+ - spec/blather/stanza/pubsub/event_spec.rb
158
+ - spec/blather/stanza/pubsub/items_spec.rb
159
+ - spec/blather/stanza/pubsub/publish_spec.rb
160
+ - spec/blather/stanza/pubsub/retract_spec.rb
161
+ - spec/blather/stanza/pubsub/subscribe_spec.rb
162
+ - spec/blather/stanza/pubsub/subscription_spec.rb
163
+ - spec/blather/stanza/pubsub/subscriptions_spec.rb
164
+ - spec/blather/stanza/pubsub/unsubscribe_spec.rb
165
+ - spec/blather/stanza/pubsub_owner/delete_spec.rb
166
+ - spec/blather/stanza/pubsub_owner/purge_spec.rb
167
+ - spec/blather/stanza/pubsub_owner_spec.rb
168
+ - spec/blather/stanza/pubsub_spec.rb
169
+ - spec/blather/stanza_spec.rb
170
+ - spec/blather/stream/client_spec.rb
171
+ - spec/blather/stream/component_spec.rb
172
+ - spec/blather/stream/parser_spec.rb
173
+ - spec/blather/xmpp_node_spec.rb
174
+ - spec/fixtures/pubsub.rb
175
+ - spec/spec_helper.rb
176
+ has_rdoc: true
177
+ homepage: http://github.com/shingara/blather
178
+ licenses: []
179
+
180
+ post_install_message:
181
+ rdoc_options:
182
+ - --charset=UTF-8
183
+ require_paths:
184
+ - lib
185
+ required_ruby_version: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ segments:
191
+ - 0
192
+ version: "0"
193
+ required_rubygems_version: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ segments:
199
+ - 0
200
+ version: "0"
201
+ requirements: []
202
+
203
+ rubyforge_project: squishtech
204
+ rubygems_version: 1.3.7
205
+ signing_key:
206
+ specification_version: 3
207
+ summary: Simpler XMPP built for speed
208
+ test_files:
209
+ - spec/blather/client/client_spec.rb
210
+ - spec/blather/client/dsl/pubsub_spec.rb
211
+ - spec/blather/client/dsl_spec.rb
212
+ - spec/blather/core_ext/nokogiri_spec.rb
213
+ - spec/blather/errors/sasl_error_spec.rb
214
+ - spec/blather/errors/stanza_error_spec.rb
215
+ - spec/blather/errors/stream_error_spec.rb
216
+ - spec/blather/errors_spec.rb
217
+ - spec/blather/jid_spec.rb
218
+ - spec/blather/roster_item_spec.rb
219
+ - spec/blather/roster_spec.rb
220
+ - spec/blather/stanza/discos/disco_info_spec.rb
221
+ - spec/blather/stanza/discos/disco_items_spec.rb
222
+ - spec/blather/stanza/iq/query_spec.rb
223
+ - spec/blather/stanza/iq/roster_spec.rb
224
+ - spec/blather/stanza/iq_spec.rb
225
+ - spec/blather/stanza/message_spec.rb
226
+ - spec/blather/stanza/presence/status_spec.rb
227
+ - spec/blather/stanza/presence/subscription_spec.rb
228
+ - spec/blather/stanza/presence_spec.rb
229
+ - spec/blather/stanza/pubsub/affiliations_spec.rb
230
+ - spec/blather/stanza/pubsub/create_spec.rb
231
+ - spec/blather/stanza/pubsub/event_spec.rb
232
+ - spec/blather/stanza/pubsub/items_spec.rb
233
+ - spec/blather/stanza/pubsub/publish_spec.rb
234
+ - spec/blather/stanza/pubsub/retract_spec.rb
235
+ - spec/blather/stanza/pubsub/subscribe_spec.rb
236
+ - spec/blather/stanza/pubsub/subscription_spec.rb
237
+ - spec/blather/stanza/pubsub/subscriptions_spec.rb
238
+ - spec/blather/stanza/pubsub/unsubscribe_spec.rb
239
+ - spec/blather/stanza/pubsub_owner/delete_spec.rb
240
+ - spec/blather/stanza/pubsub_owner/purge_spec.rb
241
+ - spec/blather/stanza/pubsub_owner_spec.rb
242
+ - spec/blather/stanza/pubsub_spec.rb
243
+ - spec/blather/stanza_spec.rb
244
+ - spec/blather/stream/client_spec.rb
245
+ - spec/blather/stream/component_spec.rb
246
+ - spec/blather/stream/parser_spec.rb
247
+ - spec/blather/xmpp_node_spec.rb
248
+ - spec/fixtures/pubsub.rb
249
+ - spec/spec_helper.rb