sprsquish-blather 0.3.4 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +1 -1
- data/README.rdoc +41 -12
- data/examples/echo.rb +1 -1
- data/examples/execute.rb +0 -5
- data/examples/pubsub/cli.rb +64 -0
- data/examples/pubsub/ping_pong.rb +18 -0
- data/examples/rosterprint.rb +14 -0
- data/examples/xmpp4r/echo.rb +35 -0
- data/lib/blather/client/client.rb +19 -13
- data/lib/blather/client/dsl/pubsub.rb +133 -0
- data/lib/blather/client/dsl.rb +16 -0
- data/lib/blather/client.rb +1 -1
- data/lib/blather/core_ext/active_support/inheritable_attributes.rb +117 -0
- data/lib/blather/core_ext/active_support.rb +1 -117
- data/lib/blather/core_ext/nokogiri.rb +35 -0
- data/lib/blather/errors/sasl_error.rb +3 -1
- data/lib/blather/errors/stanza_error.rb +10 -17
- data/lib/blather/errors/stream_error.rb +11 -14
- data/lib/blather/errors.rb +3 -20
- data/lib/blather/jid.rb +1 -0
- data/lib/blather/roster.rb +9 -0
- data/lib/blather/roster_item.rb +6 -1
- data/lib/blather/stanza/disco/disco_info.rb +45 -33
- data/lib/blather/stanza/disco/disco_items.rb +32 -21
- data/lib/blather/stanza/disco.rb +7 -1
- data/lib/blather/stanza/iq/query.rb +16 -8
- data/lib/blather/stanza/iq/roster.rb +33 -22
- data/lib/blather/stanza/iq.rb +13 -8
- data/lib/blather/stanza/message.rb +20 -31
- data/lib/blather/stanza/presence/status.rb +13 -21
- data/lib/blather/stanza/presence/subscription.rb +11 -16
- data/lib/blather/stanza/presence.rb +3 -5
- data/lib/blather/stanza/pubsub/affiliations.rb +50 -0
- data/lib/blather/stanza/pubsub/create.rb +43 -0
- data/lib/blather/stanza/pubsub/errors.rb +9 -0
- data/lib/blather/stanza/pubsub/event.rb +77 -0
- data/lib/blather/stanza/pubsub/items.rb +63 -0
- data/lib/blather/stanza/pubsub/publish.rb +58 -0
- data/lib/blather/stanza/pubsub/retract.rb +53 -0
- data/lib/blather/stanza/pubsub/subscribe.rb +42 -0
- data/lib/blather/stanza/pubsub/subscription.rb +66 -0
- data/lib/blather/stanza/pubsub/subscriptions.rb +55 -0
- data/lib/blather/stanza/pubsub/unsubscribe.rb +42 -0
- data/lib/blather/stanza/pubsub.rb +63 -0
- data/lib/blather/stanza/pubsub_owner/delete.rb +34 -0
- data/lib/blather/stanza/pubsub_owner/purge.rb +34 -0
- data/lib/blather/stanza/pubsub_owner.rb +41 -0
- data/lib/blather/stanza.rb +35 -18
- data/lib/blather/stream/client.rb +1 -2
- data/lib/blather/stream/component.rb +9 -5
- data/lib/blather/stream/features/resource.rb +63 -0
- data/lib/blather/stream/{sasl.rb → features/sasl.rb} +53 -52
- data/lib/blather/stream/features/session.rb +44 -0
- data/lib/blather/stream/features/tls.rb +28 -0
- data/lib/blather/stream/features.rb +53 -0
- data/lib/blather/stream/parser.rb +70 -46
- data/lib/blather/stream.rb +76 -168
- data/lib/blather/xmpp_node.rb +113 -52
- data/lib/blather.rb +35 -12
- data/spec/blather/client/client_spec.rb +44 -58
- data/spec/blather/client/dsl/pubsub_spec.rb +465 -0
- data/spec/blather/client/dsl_spec.rb +19 -6
- data/spec/blather/core_ext/nokogiri_spec.rb +83 -0
- data/spec/blather/errors/sasl_error_spec.rb +8 -8
- data/spec/blather/errors/stanza_error_spec.rb +25 -33
- data/spec/blather/errors/stream_error_spec.rb +21 -16
- data/spec/blather/errors_spec.rb +4 -11
- data/spec/blather/jid_spec.rb +31 -30
- data/spec/blather/roster_item_spec.rb +34 -23
- data/spec/blather/roster_spec.rb +27 -12
- data/spec/blather/stanza/discos/disco_info_spec.rb +61 -42
- data/spec/blather/stanza/discos/disco_items_spec.rb +47 -35
- data/spec/blather/stanza/iq/query_spec.rb +34 -11
- data/spec/blather/stanza/iq/roster_spec.rb +47 -30
- data/spec/blather/stanza/iq_spec.rb +19 -14
- data/spec/blather/stanza/message_spec.rb +30 -17
- data/spec/blather/stanza/presence/status_spec.rb +43 -20
- data/spec/blather/stanza/presence/subscription_spec.rb +41 -21
- data/spec/blather/stanza/presence_spec.rb +34 -21
- data/spec/blather/stanza/pubsub/affiliations_spec.rb +57 -0
- data/spec/blather/stanza/pubsub/create_spec.rb +56 -0
- data/spec/blather/stanza/pubsub/event_spec.rb +84 -0
- data/spec/blather/stanza/pubsub/items_spec.rb +79 -0
- data/spec/blather/stanza/pubsub/publish_spec.rb +83 -0
- data/spec/blather/stanza/pubsub/retract_spec.rb +75 -0
- data/spec/blather/stanza/pubsub/subscribe_spec.rb +61 -0
- data/spec/blather/stanza/pubsub/subscription_spec.rb +97 -0
- data/spec/blather/stanza/pubsub/subscriptions_spec.rb +59 -0
- data/spec/blather/stanza/pubsub/unsubscribe_spec.rb +61 -0
- data/spec/blather/stanza/pubsub_owner/delete_spec.rb +50 -0
- data/spec/blather/stanza/pubsub_owner/purge_spec.rb +50 -0
- data/spec/blather/stanza/pubsub_owner_spec.rb +27 -0
- data/spec/blather/stanza/pubsub_spec.rb +62 -0
- data/spec/blather/stanza_spec.rb +53 -38
- data/spec/blather/stream/client_spec.rb +231 -88
- data/spec/blather/stream/component_spec.rb +14 -5
- data/spec/blather/stream/parser_spec.rb +145 -0
- data/spec/blather/xmpp_node_spec.rb +192 -96
- data/spec/fixtures/pubsub.rb +311 -0
- data/spec/spec_helper.rb +5 -4
- metadata +53 -17
- data/Rakefile +0 -139
- data/ext/extconf.rb +0 -65
- data/ext/push_parser.c +0 -209
- data/lib/blather/core_ext/libxml.rb +0 -28
- data/lib/blather/stream/resource.rb +0 -48
- data/lib/blather/stream/session.rb +0 -36
- data/lib/blather/stream/stream_handler.rb +0 -39
- data/lib/blather/stream/tls.rb +0 -33
- data/spec/blather/core_ext/libxml_spec.rb +0 -58
@@ -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
|
data/spec/spec_helper.rb
CHANGED
@@ -7,6 +7,8 @@ require 'minitest/spec'
|
|
7
7
|
require 'mocha'
|
8
8
|
require 'mocha/expectation_error'
|
9
9
|
|
10
|
+
MiniTest::Unit.autorun
|
11
|
+
|
10
12
|
module MiniTest
|
11
13
|
require 'pathname' if MINI_DIR =~ %r{^./}
|
12
14
|
|
@@ -36,7 +38,6 @@ class Object
|
|
36
38
|
end
|
37
39
|
end
|
38
40
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
Unit.autorun
|
41
|
+
def parse_stanza(xml)
|
42
|
+
Nokogiri::XML.parse xml
|
43
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sprsquish-blather
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Smick
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-05
|
12
|
+
date: 2009-06-05 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -23,21 +23,21 @@ dependencies:
|
|
23
23
|
version: 0.12.6
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
|
-
name:
|
26
|
+
name: nokogiri
|
27
27
|
type: :runtime
|
28
28
|
version_requirement:
|
29
29
|
version_requirements: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
33
|
+
version: 1.3.0
|
34
34
|
version:
|
35
|
-
description: An
|
35
|
+
description: An XMPP DSL for Ruby written on top of EventMachine and Nokogiri
|
36
36
|
email: sprsquish@gmail.com
|
37
37
|
executables: []
|
38
38
|
|
39
|
-
extensions:
|
40
|
-
|
39
|
+
extensions: []
|
40
|
+
|
41
41
|
extra_rdoc_files:
|
42
42
|
- LICENSE
|
43
43
|
- README.rdoc
|
@@ -47,14 +47,18 @@ files:
|
|
47
47
|
- examples/execute.rb
|
48
48
|
- examples/ping_pong.rb
|
49
49
|
- examples/print_heirarchy.rb
|
50
|
-
-
|
51
|
-
-
|
50
|
+
- examples/pubsub/cli.rb
|
51
|
+
- examples/pubsub/ping_pong.rb
|
52
|
+
- examples/rosterprint.rb
|
53
|
+
- examples/xmpp4r/echo.rb
|
52
54
|
- lib/blather.rb
|
53
55
|
- lib/blather/client.rb
|
54
56
|
- lib/blather/client/client.rb
|
55
57
|
- lib/blather/client/dsl.rb
|
58
|
+
- lib/blather/client/dsl/pubsub.rb
|
56
59
|
- lib/blather/core_ext/active_support.rb
|
57
|
-
- lib/blather/core_ext/
|
60
|
+
- lib/blather/core_ext/active_support/inheritable_attributes.rb
|
61
|
+
- lib/blather/core_ext/nokogiri.rb
|
58
62
|
- lib/blather/errors.rb
|
59
63
|
- lib/blather/errors/sasl_error.rb
|
60
64
|
- lib/blather/errors/stanza_error.rb
|
@@ -73,15 +77,30 @@ files:
|
|
73
77
|
- lib/blather/stanza/presence.rb
|
74
78
|
- lib/blather/stanza/presence/status.rb
|
75
79
|
- lib/blather/stanza/presence/subscription.rb
|
80
|
+
- lib/blather/stanza/pubsub.rb
|
81
|
+
- lib/blather/stanza/pubsub/affiliations.rb
|
82
|
+
- lib/blather/stanza/pubsub/create.rb
|
83
|
+
- lib/blather/stanza/pubsub/errors.rb
|
84
|
+
- lib/blather/stanza/pubsub/event.rb
|
85
|
+
- lib/blather/stanza/pubsub/items.rb
|
86
|
+
- lib/blather/stanza/pubsub/publish.rb
|
87
|
+
- lib/blather/stanza/pubsub/retract.rb
|
88
|
+
- lib/blather/stanza/pubsub/subscribe.rb
|
89
|
+
- lib/blather/stanza/pubsub/subscription.rb
|
90
|
+
- lib/blather/stanza/pubsub/subscriptions.rb
|
91
|
+
- lib/blather/stanza/pubsub/unsubscribe.rb
|
92
|
+
- lib/blather/stanza/pubsub_owner.rb
|
93
|
+
- lib/blather/stanza/pubsub_owner/delete.rb
|
94
|
+
- lib/blather/stanza/pubsub_owner/purge.rb
|
76
95
|
- lib/blather/stream.rb
|
77
96
|
- lib/blather/stream/client.rb
|
78
97
|
- lib/blather/stream/component.rb
|
98
|
+
- lib/blather/stream/features.rb
|
99
|
+
- lib/blather/stream/features/resource.rb
|
100
|
+
- lib/blather/stream/features/sasl.rb
|
101
|
+
- lib/blather/stream/features/session.rb
|
102
|
+
- lib/blather/stream/features/tls.rb
|
79
103
|
- lib/blather/stream/parser.rb
|
80
|
-
- lib/blather/stream/resource.rb
|
81
|
-
- lib/blather/stream/sasl.rb
|
82
|
-
- lib/blather/stream/session.rb
|
83
|
-
- lib/blather/stream/stream_handler.rb
|
84
|
-
- lib/blather/stream/tls.rb
|
85
104
|
- lib/blather/xmpp_node.rb
|
86
105
|
- LICENSE
|
87
106
|
- README.rdoc
|
@@ -110,11 +129,12 @@ rubyforge_project: squishtech
|
|
110
129
|
rubygems_version: 1.2.0
|
111
130
|
signing_key:
|
112
131
|
specification_version: 3
|
113
|
-
summary: Simpler XMPP
|
132
|
+
summary: Simpler XMPP built for speed
|
114
133
|
test_files:
|
115
134
|
- spec/blather/client/client_spec.rb
|
135
|
+
- spec/blather/client/dsl/pubsub_spec.rb
|
116
136
|
- spec/blather/client/dsl_spec.rb
|
117
|
-
- spec/blather/core_ext/
|
137
|
+
- spec/blather/core_ext/nokogiri_spec.rb
|
118
138
|
- spec/blather/errors/sasl_error_spec.rb
|
119
139
|
- spec/blather/errors/stanza_error_spec.rb
|
120
140
|
- spec/blather/errors/stream_error_spec.rb
|
@@ -131,8 +151,24 @@ test_files:
|
|
131
151
|
- spec/blather/stanza/presence/status_spec.rb
|
132
152
|
- spec/blather/stanza/presence/subscription_spec.rb
|
133
153
|
- spec/blather/stanza/presence_spec.rb
|
154
|
+
- spec/blather/stanza/pubsub/affiliations_spec.rb
|
155
|
+
- spec/blather/stanza/pubsub/create_spec.rb
|
156
|
+
- spec/blather/stanza/pubsub/event_spec.rb
|
157
|
+
- spec/blather/stanza/pubsub/items_spec.rb
|
158
|
+
- spec/blather/stanza/pubsub/publish_spec.rb
|
159
|
+
- spec/blather/stanza/pubsub/retract_spec.rb
|
160
|
+
- spec/blather/stanza/pubsub/subscribe_spec.rb
|
161
|
+
- spec/blather/stanza/pubsub/subscription_spec.rb
|
162
|
+
- spec/blather/stanza/pubsub/subscriptions_spec.rb
|
163
|
+
- spec/blather/stanza/pubsub/unsubscribe_spec.rb
|
164
|
+
- spec/blather/stanza/pubsub_owner/delete_spec.rb
|
165
|
+
- spec/blather/stanza/pubsub_owner/purge_spec.rb
|
166
|
+
- spec/blather/stanza/pubsub_owner_spec.rb
|
167
|
+
- spec/blather/stanza/pubsub_spec.rb
|
134
168
|
- spec/blather/stanza_spec.rb
|
135
169
|
- spec/blather/stream/client_spec.rb
|
136
170
|
- spec/blather/stream/component_spec.rb
|
171
|
+
- spec/blather/stream/parser_spec.rb
|
137
172
|
- spec/blather/xmpp_node_spec.rb
|
173
|
+
- spec/fixtures/pubsub.rb
|
138
174
|
- spec/spec_helper.rb
|
data/Rakefile
DELETED
@@ -1,139 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rake'
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = 'blather'
|
8
|
-
gem.summary = 'Simpler XMPP'
|
9
|
-
gem.description = 'An evented XMPP library written on EventMachine and libxml-ruby'
|
10
|
-
|
11
|
-
gem.email = 'sprsquish@gmail.com'
|
12
|
-
gem.homepage = 'http://github.com/sprsquish/blather'
|
13
|
-
gem.authors = ['Jeff Smick']
|
14
|
-
|
15
|
-
gem.rubyforge_project = 'squishtech'
|
16
|
-
|
17
|
-
gem.extensions = ['Rakefile']
|
18
|
-
|
19
|
-
gem.add_dependency 'eventmachine', '>= 0.12.6'
|
20
|
-
gem.add_dependency 'libxml-ruby', '>= 1.1.2'
|
21
|
-
|
22
|
-
gem.files = FileList['examples/**/*', 'lib/**/*', 'ext/*.{rb,c}'].to_a
|
23
|
-
|
24
|
-
gem.test_files = FileList['spec/**/*.rb']
|
25
|
-
|
26
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
27
|
-
end
|
28
|
-
rescue LoadError
|
29
|
-
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
30
|
-
end
|
31
|
-
|
32
|
-
require 'rake/testtask'
|
33
|
-
Rake::TestTask.new(:test) do |test|
|
34
|
-
test.libs << 'lib' << 'spec'
|
35
|
-
test.pattern = 'spec/**/*_spec.rb'
|
36
|
-
test.verbose = true
|
37
|
-
end
|
38
|
-
|
39
|
-
begin
|
40
|
-
require 'rcov/rcovtask'
|
41
|
-
Rcov::RcovTask.new do |test|
|
42
|
-
test.libs << 'spec'
|
43
|
-
test.pattern = 'spec/**/*_spec.rb'
|
44
|
-
test.rcov_opts += ['--exclude \/Library\/Ruby\/Gems,spec\/', '--xrefs']
|
45
|
-
test.verbose = true
|
46
|
-
end
|
47
|
-
rescue LoadError
|
48
|
-
task :rcov do
|
49
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
|
54
|
-
begin
|
55
|
-
require 'hanna/rdoctask'
|
56
|
-
|
57
|
-
Rake::RDocTask.new do |rdoc|
|
58
|
-
if File.exist?('VERSION.yml')
|
59
|
-
config = YAML.load(File.read('VERSION.yml'))
|
60
|
-
version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
61
|
-
else
|
62
|
-
version = ""
|
63
|
-
end
|
64
|
-
|
65
|
-
rdoc.rdoc_dir = 'rdoc'
|
66
|
-
rdoc.title = "blather #{version}"
|
67
|
-
rdoc.rdoc_files.include('README*')
|
68
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
69
|
-
rdoc.options += %w[-S -T hanna --main README.rdoc --exclude autotest --exclude vendor]
|
70
|
-
end
|
71
|
-
rescue LoadError
|
72
|
-
task :rdoc do
|
73
|
-
abort "Hanna is not available. In order to use the Hanna, you must: sudo gem install mislav-hanna"
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
begin
|
78
|
-
require 'rake/contrib/sshpublisher'
|
79
|
-
namespace :rubyforge do
|
80
|
-
|
81
|
-
desc "Release gem and RDoc documentation to RubyForge"
|
82
|
-
task :release => ["rubyforge:release:gem", "rubyforge:release:docs"]
|
83
|
-
|
84
|
-
namespace :release do
|
85
|
-
desc "Publish RDoc to RubyForge."
|
86
|
-
task :docs => [:rdoc] do
|
87
|
-
config = YAML.load(
|
88
|
-
File.read(File.expand_path('~/.rubyforge/user-config.yml'))
|
89
|
-
)
|
90
|
-
|
91
|
-
host = "#{config['username']}@rubyforge.org"
|
92
|
-
remote_dir = "/var/www/gforge-projects/squishtech/blather"
|
93
|
-
local_dir = 'rdoc'
|
94
|
-
|
95
|
-
Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
rescue LoadError
|
100
|
-
puts "Rake SshDirPublisher is unavailable or your rubyforge environment is not configured."
|
101
|
-
end
|
102
|
-
|
103
|
-
MAKE = ENV['MAKE'] || (RUBY_PLATFORM =~ /mswin/ ? 'nmake' : 'make')
|
104
|
-
|
105
|
-
namespace :ext do
|
106
|
-
ext_sources = FileList['ext/*.{rb,c}']
|
107
|
-
|
108
|
-
desc 'Compile the makefile'
|
109
|
-
file 'ext/Makefile' => ext_sources do
|
110
|
-
chdir('ext') { ruby 'extconf.rb' }
|
111
|
-
end
|
112
|
-
|
113
|
-
desc "make extension"
|
114
|
-
task :make => ext_sources + ['ext/Makefile'] do
|
115
|
-
chdir('ext') { sh MAKE }
|
116
|
-
end
|
117
|
-
|
118
|
-
desc 'Build push parser'
|
119
|
-
task :build => :make
|
120
|
-
|
121
|
-
desc 'Clean extensions'
|
122
|
-
task :clean do
|
123
|
-
chdir 'ext' do
|
124
|
-
sh "rm -f Makefile"
|
125
|
-
sh "rm -f *.{o,so,bundle,log}"
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
# If running under rubygems...
|
131
|
-
__DIR__ ||= File.expand_path(File.dirname(__FILE__))
|
132
|
-
if Gem.path.any? {|path| %r(^#{Regexp.escape path}) =~ __DIR__}
|
133
|
-
task :default => :gem_build
|
134
|
-
else
|
135
|
-
task :default => ['ext:build', :test]
|
136
|
-
end
|
137
|
-
|
138
|
-
desc ":default build when running under rubygems."
|
139
|
-
task :gem_build => 'ext:build'
|
data/ext/extconf.rb
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
require 'mkmf'
|
2
|
-
|
3
|
-
flags = []
|
4
|
-
|
5
|
-
case RUBY_PLATFORM.split('-',2)[1]
|
6
|
-
when 'mswin32', 'mingw32', 'bccwin32'
|
7
|
-
unless have_header('windows.h') and
|
8
|
-
have_header('winsock.h') and
|
9
|
-
have_library('kernel32') and
|
10
|
-
have_library('rpcrt4') and
|
11
|
-
have_library('gdi32')
|
12
|
-
exit
|
13
|
-
end
|
14
|
-
|
15
|
-
flags << "-D OS_WIN32"
|
16
|
-
flags << '-D BUILD_FOR_RUBY'
|
17
|
-
flags << "-EHs"
|
18
|
-
flags << "-GR"
|
19
|
-
|
20
|
-
dir_config('xml2')
|
21
|
-
exit unless have_library('xml2') && have_header('libxml/parser.h')
|
22
|
-
|
23
|
-
when /solaris/
|
24
|
-
unless have_library('pthread') and
|
25
|
-
have_library('nsl') and
|
26
|
-
have_library('socket')
|
27
|
-
exit
|
28
|
-
end
|
29
|
-
|
30
|
-
flags << '-D OS_UNIX'
|
31
|
-
flags << '-D OS_SOLARIS8'
|
32
|
-
flags << '-D BUILD_FOR_RUBY'
|
33
|
-
|
34
|
-
dir_config('xml2')
|
35
|
-
exit unless have_library('xml2') && find_header('libxml/parser.h', '/usr/include/libxml2')
|
36
|
-
|
37
|
-
# on Unix we need a g++ link, not gcc.
|
38
|
-
#CONFIG['LDSHARED'] = "$(CXX) -shared"
|
39
|
-
|
40
|
-
when /darwin/
|
41
|
-
flags << '-DOS_UNIX'
|
42
|
-
flags << '-DBUILD_FOR_RUBY'
|
43
|
-
|
44
|
-
dir_config('xml2')
|
45
|
-
exit unless have_library('xml2') && find_header('libxml/parser.h', '/usr/include/libxml2')
|
46
|
-
# on Unix we need a g++ link, not gcc.
|
47
|
-
#CONFIG['LDSHARED'] = "$(CXX) " + CONFIG['LDSHARED'].split[1..-1].join(' ')
|
48
|
-
|
49
|
-
else
|
50
|
-
unless have_library('pthread')
|
51
|
-
exit
|
52
|
-
end
|
53
|
-
|
54
|
-
flags << '-DOS_UNIX'
|
55
|
-
flags << '-DBUILD_FOR_RUBY'
|
56
|
-
|
57
|
-
dir_config('xml2')
|
58
|
-
exit unless have_library('xml2') && find_header('libxml/parser.h', '/usr/include/libxml2')
|
59
|
-
# on Unix we need a g++ link, not gcc.
|
60
|
-
#CONFIG['LDSHARED'] = "$(CXX) -shared"
|
61
|
-
end
|
62
|
-
|
63
|
-
$CFLAGS += ' ' + flags.join(' ')
|
64
|
-
|
65
|
-
create_makefile "push_parser"
|