vines 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. data/README +5 -9
  2. data/Rakefile +11 -9
  3. data/conf/config.rb +30 -4
  4. data/lib/vines/cluster/connection.rb +26 -0
  5. data/lib/vines/cluster/publisher.rb +55 -0
  6. data/lib/vines/cluster/pubsub.rb +92 -0
  7. data/lib/vines/cluster/sessions.rb +125 -0
  8. data/lib/vines/cluster/subscriber.rb +108 -0
  9. data/lib/vines/cluster.rb +246 -0
  10. data/lib/vines/command/init.rb +21 -24
  11. data/lib/vines/config/host.rb +48 -8
  12. data/lib/vines/config/port.rb +5 -0
  13. data/lib/vines/config/pubsub.rb +108 -0
  14. data/lib/vines/config.rb +74 -20
  15. data/lib/vines/jid.rb +14 -0
  16. data/lib/vines/router.rb +69 -55
  17. data/lib/vines/stanza/iq/disco_info.rb +22 -9
  18. data/lib/vines/stanza/iq/disco_items.rb +6 -3
  19. data/lib/vines/stanza/iq/ping.rb +1 -1
  20. data/lib/vines/stanza/iq/private_storage.rb +4 -8
  21. data/lib/vines/stanza/iq/roster.rb +6 -14
  22. data/lib/vines/stanza/iq/session.rb +2 -7
  23. data/lib/vines/stanza/iq/vcard.rb +4 -6
  24. data/lib/vines/stanza/iq/version.rb +1 -1
  25. data/lib/vines/stanza/iq.rb +8 -10
  26. data/lib/vines/stanza/presence/subscribe.rb +3 -11
  27. data/lib/vines/stanza/presence/subscribed.rb +16 -29
  28. data/lib/vines/stanza/presence/unsubscribe.rb +3 -15
  29. data/lib/vines/stanza/presence/unsubscribed.rb +3 -16
  30. data/lib/vines/stanza/presence.rb +30 -0
  31. data/lib/vines/stanza/pubsub/create.rb +39 -0
  32. data/lib/vines/stanza/pubsub/delete.rb +41 -0
  33. data/lib/vines/stanza/pubsub/publish.rb +66 -0
  34. data/lib/vines/stanza/pubsub/subscribe.rb +44 -0
  35. data/lib/vines/stanza/pubsub/unsubscribe.rb +30 -0
  36. data/lib/vines/stanza/pubsub.rb +22 -0
  37. data/lib/vines/stanza.rb +72 -22
  38. data/lib/vines/storage/couchdb.rb +46 -65
  39. data/lib/vines/storage/local.rb +20 -14
  40. data/lib/vines/storage/mongodb.rb +132 -0
  41. data/lib/vines/storage/null.rb +39 -0
  42. data/lib/vines/storage/redis.rb +61 -68
  43. data/lib/vines/storage/sql.rb +73 -69
  44. data/lib/vines/storage.rb +1 -1
  45. data/lib/vines/stream/client/bind.rb +2 -2
  46. data/lib/vines/stream/client/session.rb +71 -16
  47. data/lib/vines/stream/component/handshake.rb +1 -0
  48. data/lib/vines/stream/component/ready.rb +2 -2
  49. data/lib/vines/stream/http/session.rb +2 -0
  50. data/lib/vines/stream/http.rb +0 -6
  51. data/lib/vines/stream/server/final_restart.rb +1 -0
  52. data/lib/vines/stream/server/outbound/final_features.rb +1 -0
  53. data/lib/vines/stream/server/ready.rb +6 -2
  54. data/lib/vines/stream/server.rb +4 -3
  55. data/lib/vines/stream.rb +10 -6
  56. data/lib/vines/version.rb +1 -1
  57. data/lib/vines.rb +48 -22
  58. data/test/cluster/publisher_test.rb +45 -0
  59. data/test/cluster/sessions_test.rb +54 -0
  60. data/test/cluster/subscriber_test.rb +94 -0
  61. data/test/config/host_test.rb +100 -21
  62. data/test/config/pubsub_test.rb +181 -0
  63. data/test/config_test.rb +225 -43
  64. data/test/jid_test.rb +7 -0
  65. data/test/router_test.rb +181 -9
  66. data/test/stanza/iq/disco_info_test.rb +8 -6
  67. data/test/stanza/iq/disco_items_test.rb +3 -3
  68. data/test/stanza/iq/private_storage_test.rb +8 -19
  69. data/test/stanza/iq/roster_test.rb +1 -1
  70. data/test/stanza/iq/session_test.rb +3 -6
  71. data/test/stanza/iq/vcard_test.rb +6 -2
  72. data/test/stanza/iq/version_test.rb +3 -2
  73. data/test/stanza/iq_test.rb +5 -5
  74. data/test/stanza/message_test.rb +3 -2
  75. data/test/stanza/presence/probe_test.rb +2 -1
  76. data/test/stanza/pubsub/create_test.rb +138 -0
  77. data/test/stanza/pubsub/delete_test.rb +142 -0
  78. data/test/stanza/pubsub/publish_test.rb +373 -0
  79. data/test/stanza/pubsub/subscribe_test.rb +186 -0
  80. data/test/stanza/pubsub/unsubscribe_test.rb +179 -0
  81. data/test/stanza_test.rb +2 -1
  82. data/test/storage/local_test.rb +26 -25
  83. data/test/storage/mock_mongo.rb +40 -0
  84. data/test/storage/mock_redis.rb +98 -0
  85. data/test/storage/mongodb_test.rb +81 -0
  86. data/test/storage/null_test.rb +30 -0
  87. data/test/storage/redis_test.rb +3 -36
  88. data/test/stream/component/handshake_test.rb +4 -0
  89. data/test/stream/component/ready_test.rb +2 -1
  90. data/test/stream/server/ready_test.rb +7 -1
  91. data/web/404.html +5 -3
  92. data/web/chat/coffeescripts/chat.coffee +9 -5
  93. data/web/chat/javascripts/app.js +1 -1
  94. data/web/chat/javascripts/chat.js +14 -8
  95. data/web/chat/stylesheets/chat.css +4 -1
  96. data/web/lib/coffeescripts/button.coffee +9 -5
  97. data/web/lib/coffeescripts/filter.coffee +1 -1
  98. data/web/lib/coffeescripts/login.coffee +14 -1
  99. data/web/lib/coffeescripts/session.coffee +8 -11
  100. data/web/lib/images/dark-gray.png +0 -0
  101. data/web/lib/images/light-gray.png +0 -0
  102. data/web/lib/images/logo-large.png +0 -0
  103. data/web/lib/images/logo-small.png +0 -0
  104. data/web/lib/images/white.png +0 -0
  105. data/web/lib/javascripts/base.js +9 -8
  106. data/web/lib/javascripts/button.js +20 -12
  107. data/web/lib/javascripts/filter.js +1 -1
  108. data/web/lib/javascripts/icons.js +7 -1
  109. data/web/lib/javascripts/jquery.js +4 -4
  110. data/web/lib/javascripts/login.js +16 -2
  111. data/web/lib/javascripts/raphael.js +5 -7
  112. data/web/lib/javascripts/session.js +10 -14
  113. data/web/lib/stylesheets/base.css +7 -11
  114. data/web/lib/stylesheets/login.css +31 -27
  115. metadata +100 -34
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vines
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-28 00:00:00.000000000Z
12
+ date: 2012-01-30 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &70110741555860 !ruby/object:Gem::Requirement
16
+ requirement: &70316966821400 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 3.1.0
21
+ version: 3.2.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70110741555860
24
+ version_requirements: *70316966821400
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bcrypt-ruby
27
- requirement: &70110741555380 !ruby/object:Gem::Requirement
27
+ requirement: &70316966820920 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,43 +32,43 @@ dependencies:
32
32
  version: 3.0.1
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70110741555380
35
+ version_requirements: *70316966820920
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: em-http-request
38
- requirement: &70110741554920 !ruby/object:Gem::Requirement
38
+ requirement: &70316966820460 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
42
42
  - !ruby/object:Gem::Version
43
- version: 0.3.0
43
+ version: 1.0.1
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70110741554920
46
+ version_requirements: *70316966820460
47
47
  - !ruby/object:Gem::Dependency
48
- name: em-redis
49
- requirement: &70110741554460 !ruby/object:Gem::Requirement
48
+ name: em-hiredis
49
+ requirement: &70316966820000 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: 0.3.0
54
+ version: 0.1.0
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70110741554460
57
+ version_requirements: *70316966820000
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: eventmachine
60
- requirement: &70110741554000 !ruby/object:Gem::Requirement
60
+ requirement: &70316966819540 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
- - - ~>
63
+ - - ! '>='
64
64
  - !ruby/object:Gem::Version
65
65
  version: 0.12.10
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70110741554000
68
+ version_requirements: *70316966819540
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: http_parser.rb
71
- requirement: &70110741553540 !ruby/object:Gem::Requirement
71
+ requirement: &70316966819080 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,32 @@ dependencies:
76
76
  version: 0.5.3
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70110741553540
79
+ version_requirements: *70316966819080
80
+ - !ruby/object:Gem::Dependency
81
+ name: mongo
82
+ requirement: &70316966818620 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: 1.5.2
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: *70316966818620
91
+ - !ruby/object:Gem::Dependency
92
+ name: bson_ext
93
+ requirement: &70316966818160 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ~>
97
+ - !ruby/object:Gem::Version
98
+ version: 1.5.2
99
+ type: :runtime
100
+ prerelease: false
101
+ version_requirements: *70316966818160
80
102
  - !ruby/object:Gem::Dependency
81
103
  name: net-ldap
82
- requirement: &70110741553080 !ruby/object:Gem::Requirement
104
+ requirement: &70316966817700 !ruby/object:Gem::Requirement
83
105
  none: false
84
106
  requirements:
85
107
  - - ~>
@@ -87,10 +109,10 @@ dependencies:
87
109
  version: 0.2.2
88
110
  type: :runtime
89
111
  prerelease: false
90
- version_requirements: *70110741553080
112
+ version_requirements: *70316966817700
91
113
  - !ruby/object:Gem::Dependency
92
114
  name: nokogiri
93
- requirement: &70110741552620 !ruby/object:Gem::Requirement
115
+ requirement: &70316966817240 !ruby/object:Gem::Requirement
94
116
  none: false
95
117
  requirements:
96
118
  - - ~>
@@ -98,10 +120,10 @@ dependencies:
98
120
  version: 1.4.7
99
121
  type: :runtime
100
122
  prerelease: false
101
- version_requirements: *70110741552620
123
+ version_requirements: *70316966817240
102
124
  - !ruby/object:Gem::Dependency
103
125
  name: minitest
104
- requirement: &70110741552160 !ruby/object:Gem::Requirement
126
+ requirement: &70316966816780 !ruby/object:Gem::Requirement
105
127
  none: false
106
128
  requirements:
107
129
  - - =
@@ -109,10 +131,10 @@ dependencies:
109
131
  version: 2.2.2
110
132
  type: :development
111
133
  prerelease: false
112
- version_requirements: *70110741552160
134
+ version_requirements: *70316966816780
113
135
  - !ruby/object:Gem::Dependency
114
136
  name: rake
115
- requirement: &70110741551780 !ruby/object:Gem::Requirement
137
+ requirement: &70316966816400 !ruby/object:Gem::Requirement
116
138
  none: false
117
139
  requirements:
118
140
  - - ! '>='
@@ -120,10 +142,10 @@ dependencies:
120
142
  version: '0'
121
143
  type: :development
122
144
  prerelease: false
123
- version_requirements: *70110741551780
145
+ version_requirements: *70316966816400
124
146
  - !ruby/object:Gem::Dependency
125
147
  name: sqlite3
126
- requirement: &70110741551360 !ruby/object:Gem::Requirement
148
+ requirement: &70316966815980 !ruby/object:Gem::Requirement
127
149
  none: false
128
150
  requirements:
129
151
  - - ! '>='
@@ -131,18 +153,18 @@ dependencies:
131
153
  version: '0'
132
154
  type: :development
133
155
  prerelease: false
134
- version_requirements: *70110741551360
156
+ version_requirements: *70316966815980
135
157
  description: ! 'Vines is an XMPP chat server that supports thousands of
136
158
 
137
159
  simultaneous connections by using EventMachine for asynchronous IO. User data
138
160
 
139
- is stored in a SQL database, CouchDB, Redis, the file system, or a custom storage
161
+ is stored in a SQL database, CouchDB, MongoDB, Redis, the file system, or a
140
162
 
141
- implementation that you provide. LDAP authentication can be used so user names
163
+ custom storage implementation that you provide. LDAP authentication can be used
142
164
 
143
- and passwords aren''t stored in the chat database. SSL encryption is mandatory on
165
+ so user names and passwords aren''t stored in the chat database. SSL encryption
144
166
 
145
- all client and server connections.'
167
+ is mandatory on all client and server connections.'
146
168
  email:
147
169
  - david@negativecode.com
148
170
  executables:
@@ -154,6 +176,12 @@ files:
154
176
  - Rakefile
155
177
  - README
156
178
  - bin/vines
179
+ - lib/vines/cluster/connection.rb
180
+ - lib/vines/cluster/publisher.rb
181
+ - lib/vines/cluster/pubsub.rb
182
+ - lib/vines/cluster/sessions.rb
183
+ - lib/vines/cluster/subscriber.rb
184
+ - lib/vines/cluster.rb
157
185
  - lib/vines/command/bcrypt.rb
158
186
  - lib/vines/command/cert.rb
159
187
  - lib/vines/command/init.rb
@@ -164,6 +192,7 @@ files:
164
192
  - lib/vines/command/stop.rb
165
193
  - lib/vines/config/host.rb
166
194
  - lib/vines/config/port.rb
195
+ - lib/vines/config/pubsub.rb
167
196
  - lib/vines/config.rb
168
197
  - lib/vines/contact.rb
169
198
  - lib/vines/daemon.rb
@@ -194,10 +223,18 @@ files:
194
223
  - lib/vines/stanza/presence/unsubscribe.rb
195
224
  - lib/vines/stanza/presence/unsubscribed.rb
196
225
  - lib/vines/stanza/presence.rb
226
+ - lib/vines/stanza/pubsub/create.rb
227
+ - lib/vines/stanza/pubsub/delete.rb
228
+ - lib/vines/stanza/pubsub/publish.rb
229
+ - lib/vines/stanza/pubsub/subscribe.rb
230
+ - lib/vines/stanza/pubsub/unsubscribe.rb
231
+ - lib/vines/stanza/pubsub.rb
197
232
  - lib/vines/stanza.rb
198
233
  - lib/vines/storage/couchdb.rb
199
234
  - lib/vines/storage/ldap.rb
200
235
  - lib/vines/storage/local.rb
236
+ - lib/vines/storage/mongodb.rb
237
+ - lib/vines/storage/null.rb
201
238
  - lib/vines/storage/redis.rb
202
239
  - lib/vines/storage/sql.rb
203
240
  - lib/vines/storage.rb
@@ -272,9 +309,12 @@ files:
272
309
  - web/lib/coffeescripts/router.coffee
273
310
  - web/lib/coffeescripts/session.coffee
274
311
  - web/lib/coffeescripts/transfer.coffee
312
+ - web/lib/images/dark-gray.png
275
313
  - web/lib/images/default-user.png
314
+ - web/lib/images/light-gray.png
276
315
  - web/lib/images/logo-large.png
277
316
  - web/lib/images/logo-small.png
317
+ - web/lib/images/white.png
278
318
  - web/lib/javascripts/base.js
279
319
  - web/lib/javascripts/button.js
280
320
  - web/lib/javascripts/contact.js
@@ -294,7 +334,11 @@ files:
294
334
  - web/lib/javascripts/transfer.js
295
335
  - web/lib/stylesheets/base.css
296
336
  - web/lib/stylesheets/login.css
337
+ - test/cluster/publisher_test.rb
338
+ - test/cluster/sessions_test.rb
339
+ - test/cluster/subscriber_test.rb
297
340
  - test/config/host_test.rb
341
+ - test/config/pubsub_test.rb
298
342
  - test/config_test.rb
299
343
  - test/contact_test.rb
300
344
  - test/error_test.rb
@@ -314,10 +358,19 @@ files:
314
358
  - test/stanza/message_test.rb
315
359
  - test/stanza/presence/probe_test.rb
316
360
  - test/stanza/presence/subscribe_test.rb
361
+ - test/stanza/pubsub/create_test.rb
362
+ - test/stanza/pubsub/delete_test.rb
363
+ - test/stanza/pubsub/publish_test.rb
364
+ - test/stanza/pubsub/subscribe_test.rb
365
+ - test/stanza/pubsub/unsubscribe_test.rb
317
366
  - test/stanza_test.rb
318
367
  - test/storage/couchdb_test.rb
319
368
  - test/storage/ldap_test.rb
320
369
  - test/storage/local_test.rb
370
+ - test/storage/mock_mongo.rb
371
+ - test/storage/mock_redis.rb
372
+ - test/storage/mongodb_test.rb
373
+ - test/storage/null_test.rb
321
374
  - test/storage/redis_test.rb
322
375
  - test/storage/sql_test.rb
323
376
  - test/storage/storage_tests.rb
@@ -338,7 +391,7 @@ files:
338
391
  - test/stream/server/ready_test.rb
339
392
  - test/token_bucket_test.rb
340
393
  - test/user_test.rb
341
- homepage: http://www.getvines.com
394
+ homepage: http://www.getvines.org
342
395
  licenses: []
343
396
  post_install_message:
344
397
  rdoc_options: []
@@ -363,7 +416,11 @@ signing_key:
363
416
  specification_version: 3
364
417
  summary: Vines is an XMPP chat server that's easy to install and run.
365
418
  test_files:
419
+ - test/cluster/publisher_test.rb
420
+ - test/cluster/sessions_test.rb
421
+ - test/cluster/subscriber_test.rb
366
422
  - test/config/host_test.rb
423
+ - test/config/pubsub_test.rb
367
424
  - test/config_test.rb
368
425
  - test/contact_test.rb
369
426
  - test/error_test.rb
@@ -383,10 +440,19 @@ test_files:
383
440
  - test/stanza/message_test.rb
384
441
  - test/stanza/presence/probe_test.rb
385
442
  - test/stanza/presence/subscribe_test.rb
443
+ - test/stanza/pubsub/create_test.rb
444
+ - test/stanza/pubsub/delete_test.rb
445
+ - test/stanza/pubsub/publish_test.rb
446
+ - test/stanza/pubsub/subscribe_test.rb
447
+ - test/stanza/pubsub/unsubscribe_test.rb
386
448
  - test/stanza_test.rb
387
449
  - test/storage/couchdb_test.rb
388
450
  - test/storage/ldap_test.rb
389
451
  - test/storage/local_test.rb
452
+ - test/storage/mock_mongo.rb
453
+ - test/storage/mock_redis.rb
454
+ - test/storage/mongodb_test.rb
455
+ - test/storage/null_test.rb
390
456
  - test/storage/redis_test.rb
391
457
  - test/storage/sql_test.rb
392
458
  - test/storage/storage_tests.rb