vines 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +1 -1
- data/Rakefile +10 -10
- data/conf/certs/ca-bundle.crt +112 -378
- data/conf/config.rb +18 -9
- data/lib/vines.rb +8 -1
- data/lib/vines/command/cert.rb +2 -1
- data/lib/vines/command/init.rb +11 -0
- data/lib/vines/command/ldap.rb +6 -3
- data/lib/vines/command/schema.rb +1 -1
- data/lib/vines/config.rb +57 -146
- data/lib/vines/config/host.rb +85 -0
- data/lib/vines/config/port.rb +111 -0
- data/lib/vines/contact.rb +1 -1
- data/lib/vines/jid.rb +26 -4
- data/lib/vines/kit.rb +6 -0
- data/lib/vines/log.rb +24 -0
- data/lib/vines/router.rb +70 -38
- data/lib/vines/stanza.rb +45 -8
- data/lib/vines/stanza/iq.rb +3 -3
- data/lib/vines/stanza/iq/disco_info.rb +5 -1
- data/lib/vines/stanza/iq/disco_items.rb +3 -0
- data/lib/vines/stanza/iq/private_storage.rb +9 -5
- data/lib/vines/stanza/iq/roster.rb +11 -12
- data/lib/vines/stanza/iq/vcard.rb +4 -4
- data/lib/vines/stanza/iq/version.rb +25 -0
- data/lib/vines/stanza/message.rb +4 -5
- data/lib/vines/stanza/presence.rb +20 -18
- data/lib/vines/stanza/presence/probe.rb +3 -4
- data/lib/vines/stanza/presence/subscribe.rb +4 -3
- data/lib/vines/stanza/presence/subscribed.rb +6 -5
- data/lib/vines/stanza/presence/unsubscribe.rb +4 -4
- data/lib/vines/stanza/presence/unsubscribed.rb +4 -3
- data/lib/vines/storage/couchdb.rb +3 -3
- data/lib/vines/storage/ldap.rb +19 -8
- data/lib/vines/storage/local.rb +23 -12
- data/lib/vines/storage/redis.rb +3 -3
- data/lib/vines/storage/sql.rb +5 -5
- data/lib/vines/stream.rb +40 -6
- data/lib/vines/stream/client.rb +5 -6
- data/lib/vines/stream/client/auth.rb +3 -2
- data/lib/vines/stream/client/bind.rb +2 -2
- data/lib/vines/stream/client/bind_restart.rb +1 -2
- data/lib/vines/stream/client/ready.rb +2 -0
- data/lib/vines/stream/client/session.rb +13 -4
- data/lib/vines/stream/client/tls.rb +1 -0
- data/lib/vines/stream/component.rb +6 -5
- data/lib/vines/stream/component/ready.rb +5 -6
- data/lib/vines/stream/http.rb +10 -4
- data/lib/vines/stream/http/request.rb +23 -2
- data/lib/vines/stream/server.rb +13 -11
- data/lib/vines/stream/server/outbound/auth_result.rb +1 -0
- data/lib/vines/stream/server/outbound/tls_result.rb +1 -0
- data/lib/vines/stream/server/ready.rb +2 -2
- data/lib/vines/user.rb +2 -1
- data/lib/vines/version.rb +1 -1
- data/test/config/host_test.rb +292 -0
- data/test/config_test.rb +244 -103
- data/test/contact_test.rb +7 -1
- data/test/jid_test.rb +48 -0
- data/test/router_test.rb +16 -47
- data/test/stanza/iq/disco_info_test.rb +76 -0
- data/test/stanza/iq/disco_items_test.rb +47 -0
- data/test/stanza/iq/private_storage_test.rb +33 -10
- data/test/stanza/iq/roster_test.rb +15 -5
- data/test/stanza/iq/vcard_test.rb +8 -25
- data/test/stanza/iq/version_test.rb +62 -0
- data/test/stanza/iq_test.rb +13 -10
- data/test/stanza/message_test.rb +16 -24
- data/test/stanza/presence/probe_test.rb +52 -0
- data/test/stanza/presence/subscribe_test.rb +1 -5
- data/test/stanza_test.rb +77 -0
- data/test/stream/client/auth_test.rb +1 -0
- data/test/stream/client/ready_test.rb +2 -0
- data/test/stream/client/session_test.rb +7 -2
- data/test/stream/component/ready_test.rb +19 -36
- data/test/stream/http/request_test.rb +22 -2
- data/test/stream/server/ready_test.rb +14 -21
- data/web/404.html +9 -3
- data/web/chat/index.html +2 -2
- data/web/chat/javascripts/app.js +1 -1
- data/web/chat/stylesheets/chat.css +4 -9
- data/web/lib/coffeescripts/layout.coffee +2 -2
- data/web/{chat → lib}/coffeescripts/logout.coffee +0 -0
- data/web/lib/coffeescripts/notification.coffee +14 -0
- data/web/lib/coffeescripts/session.coffee +28 -24
- data/web/lib/coffeescripts/transfer.coffee +37 -34
- data/web/lib/javascripts/base.js +8 -8
- data/web/lib/javascripts/icons.js +3 -0
- data/web/lib/javascripts/jquery.js +4 -18
- data/web/lib/javascripts/layout.js +2 -2
- data/web/{chat → lib}/javascripts/logout.js +0 -0
- data/web/lib/javascripts/notification.js +26 -0
- data/web/lib/javascripts/session.js +20 -16
- data/web/lib/javascripts/transfer.js +45 -55
- data/web/lib/stylesheets/base.css +45 -9
- metadata +31 -15
@@ -16,10 +16,10 @@ Transfer = (function() {
|
|
16
16
|
this.sent = 0;
|
17
17
|
}
|
18
18
|
Transfer.prototype.start = function() {
|
19
|
-
var
|
19
|
+
var node;
|
20
20
|
node = $("<iq id=\"" + (this.session.uniqueId()) + "\" to=\"" + this.to + "\" type=\"set\">\n <si xmlns=\"http://jabber.org/protocol/si\" id=\"" + (this.session.uniqueId()) + "\" profile=\"http://jabber.org/protocol/si/profile/file-transfer\">\n <file xmlns=\"http://jabber.org/protocol/si/profile/file-transfer\" name=\"\" size=\"" + this.file.size + "\"/>\n <feature xmlns=\"http://jabber.org/protocol/feature-neg\">\n <x xmlns=\"jabber:x:data\" type=\"form\">\n <field var=\"stream-method\" type=\"list-single\">\n <option><value>http://jabber.org/protocol/ibb</value></option>\n </field>\n </x>\n </feature>\n </si>\n</iq>");
|
21
21
|
$('file', node).attr('name', this.file.name);
|
22
|
-
|
22
|
+
return this.session.sendIQ(node.get(0), __bind(function(result) {
|
23
23
|
var m, methods, ok;
|
24
24
|
methods = $('si feature x field[var="stream-method"] value', result);
|
25
25
|
ok = ((function() {
|
@@ -36,45 +36,42 @@ Transfer = (function() {
|
|
36
36
|
if (ok) {
|
37
37
|
return this.open();
|
38
38
|
}
|
39
|
-
}, this);
|
40
|
-
return this.session.sendIQ(node.get(0), callback);
|
39
|
+
}, this));
|
41
40
|
};
|
42
41
|
Transfer.prototype.open = function() {
|
43
|
-
var
|
42
|
+
var node;
|
44
43
|
node = $("<iq id=\"" + (this.session.uniqueId()) + "\" to=\"" + this.to + "\" type=\"set\">\n <open xmlns=\"http://jabber.org/protocol/ibb\" sid=\"" + this.sid + "\" block-size=\"4096\"/>\n</iq>");
|
45
|
-
|
44
|
+
return this.session.sendIQ(node.get(0), __bind(function(result) {
|
46
45
|
if (this.ok(result)) {
|
47
46
|
this.opened = true;
|
48
|
-
return this.
|
49
|
-
return this.sendChunk();
|
50
|
-
}, this));
|
47
|
+
return this.sendChunk();
|
51
48
|
}
|
52
|
-
}, this);
|
53
|
-
return this.session.sendIQ(node.get(0), callback);
|
49
|
+
}, this));
|
54
50
|
};
|
55
51
|
Transfer.prototype.sendChunk = function() {
|
56
|
-
var callback, chunk, node;
|
57
52
|
if (this.closed) {
|
58
53
|
return;
|
59
54
|
}
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
node = $("<iq id=\"" + (this.session.uniqueId()) + "\" to=\"" + this.to + "\" type=\"set\">\n <data xmlns=\"http://jabber.org/protocol/ibb\" sid=\"" + this.sid + "\" seq=\"" + (this.seq++) + "\">" + chunk + "</data>\n</iq>");
|
65
|
-
if (this.seq > 65535) {
|
66
|
-
this.seq = 0;
|
67
|
-
}
|
68
|
-
callback = __bind(function(result) {
|
69
|
-
var pct;
|
70
|
-
if (!this.ok(result)) {
|
55
|
+
return this.chunks.chunk(__bind(function(chunk) {
|
56
|
+
var node;
|
57
|
+
if (!chunk) {
|
58
|
+
this.close();
|
71
59
|
return;
|
72
60
|
}
|
73
|
-
|
74
|
-
this.
|
75
|
-
|
76
|
-
|
77
|
-
|
61
|
+
node = $("<iq id=\"" + (this.session.uniqueId()) + "\" to=\"" + this.to + "\" type=\"set\">\n <data xmlns=\"http://jabber.org/protocol/ibb\" sid=\"" + this.sid + "\" seq=\"" + (this.seq++) + "\">" + chunk + "</data>\n</iq>");
|
62
|
+
if (this.seq > 65535) {
|
63
|
+
this.seq = 0;
|
64
|
+
}
|
65
|
+
return this.session.sendIQ(node.get(0), __bind(function(result) {
|
66
|
+
var pct;
|
67
|
+
if (!this.ok(result)) {
|
68
|
+
return;
|
69
|
+
}
|
70
|
+
pct = Math.ceil(++this.sent / this.chunks.total * 100);
|
71
|
+
this.progress(pct);
|
72
|
+
return this.sendChunk();
|
73
|
+
}, this));
|
74
|
+
}, this));
|
78
75
|
};
|
79
76
|
Transfer.prototype.close = function() {
|
80
77
|
var node;
|
@@ -97,36 +94,29 @@ Transfer = (function() {
|
|
97
94
|
return $(result).attr('type') === 'result';
|
98
95
|
};
|
99
96
|
Chunks = (function() {
|
97
|
+
var CHUNK_SIZE;
|
98
|
+
CHUNK_SIZE = 3 / 4 * 4096;
|
100
99
|
function Chunks(file) {
|
101
100
|
this.file = file;
|
102
|
-
this.
|
103
|
-
this.
|
101
|
+
this.total = Math.ceil(this.file.size / CHUNK_SIZE);
|
102
|
+
this.slice = this.file.slice || this.file.webkitSlice || this.file.mozSlice;
|
103
|
+
this.pos = 0;
|
104
104
|
}
|
105
|
-
Chunks.prototype.chunk = function() {
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
if (chunk) {
|
121
|
-
_results.push(chunk);
|
122
|
-
}
|
123
|
-
}
|
124
|
-
return _results;
|
125
|
-
})();
|
126
|
-
this.total = this.chunks.length;
|
127
|
-
return callback();
|
128
|
-
}, this);
|
129
|
-
return reader.readAsBinaryString(this.file);
|
105
|
+
Chunks.prototype.chunk = function(callback) {
|
106
|
+
var chunk, end, reader, start;
|
107
|
+
start = this.pos;
|
108
|
+
end = this.pos + CHUNK_SIZE;
|
109
|
+
this.pos = end;
|
110
|
+
if (start > this.file.size) {
|
111
|
+
return callback(null);
|
112
|
+
} else {
|
113
|
+
chunk = this.slice.call(this.file, start, end);
|
114
|
+
reader = new FileReader();
|
115
|
+
reader.onload = function(event) {
|
116
|
+
return callback(btoa(event.target.result));
|
117
|
+
};
|
118
|
+
return reader.readAsBinaryString(chunk);
|
119
|
+
}
|
130
120
|
};
|
131
121
|
return Chunks;
|
132
122
|
})();
|
@@ -2,21 +2,24 @@
|
|
2
2
|
margin: 0;
|
3
3
|
padding: 0;
|
4
4
|
}
|
5
|
+
html, body {
|
6
|
+
height: 100%;
|
7
|
+
overflow: hidden;
|
8
|
+
}
|
5
9
|
html {
|
6
10
|
background: #0c1a2d;
|
7
|
-
height: 100%;
|
8
11
|
}
|
9
12
|
body {
|
10
13
|
background: #0c1a2d;
|
11
14
|
color: #222;
|
12
15
|
font-family: "Helvetica Neue", Helvetica, sans-serif;
|
13
16
|
font-size: 10pt;
|
14
|
-
height: 100%;
|
15
17
|
line-height: 20pt;
|
16
18
|
}
|
17
19
|
input[type="text"],
|
18
20
|
input[type="email"],
|
19
|
-
input[type="password"]
|
21
|
+
input[type="password"],
|
22
|
+
textarea {
|
20
23
|
border-radius: 2px;
|
21
24
|
border: none;
|
22
25
|
-webkit-box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.2);
|
@@ -26,6 +29,13 @@ input[type="password"] {
|
|
26
29
|
outline: none;
|
27
30
|
padding: 6px;
|
28
31
|
}
|
32
|
+
input[type="text"]:focus,
|
33
|
+
input[type="email"]:focus,
|
34
|
+
input[type="password"]:focus,
|
35
|
+
textarea:focus {
|
36
|
+
-webkit-box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.6);
|
37
|
+
box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.6);
|
38
|
+
}
|
29
39
|
input[type="button"],
|
30
40
|
input[type="submit"] {
|
31
41
|
background: -moz-linear-gradient(#ececec, #dcdcdc);
|
@@ -253,13 +263,24 @@ optgroup option {
|
|
253
263
|
background: rgba(0, 0, 0, .2);
|
254
264
|
}
|
255
265
|
ul.selectable li.selected {
|
256
|
-
background: #
|
257
|
-
background: -moz-linear-gradient(#
|
258
|
-
background: -o-linear-gradient(#
|
259
|
-
background: -webkit-gradient(linear, left top, left bottom, from(#
|
260
|
-
border-
|
266
|
+
background: #319be7;
|
267
|
+
background: -moz-linear-gradient(#319be7, #1b78d9);
|
268
|
+
background: -o-linear-gradient(#319be7, #1b78d9);
|
269
|
+
background: -webkit-gradient(linear, left top, left bottom, from(#319be7), to(#1b78d9));
|
270
|
+
border-top: 1px solid #148ddf;
|
271
|
+
border-bottom: 1px solid #095bba;
|
272
|
+
color: #fff;
|
273
|
+
text-shadow: -1px 1px 1px hsl(210, 51%, 45%), 0px -1px 1px hsl(210, 51%, 49%);
|
274
|
+
}
|
275
|
+
ul.selectable li.selected.secondary {
|
276
|
+
background: hsl(220, 29%, 80%);
|
277
|
+
background: -moz-linear-gradient(hsl(220, 29%, 80%), hsl(217, 25%, 69%));
|
278
|
+
background: -o-linear-gradient(hsl(220, 29%, 80%), hsl(217, 25%, 69%));
|
279
|
+
background: -webkit-gradient(linear, left top, left bottom, from(hsl(220, 29%, 80%)), to(hsl(217, 25%, 69%)));
|
280
|
+
border-top: 1px solid hsl(218, 23%, 79%);
|
281
|
+
border-bottom: 1px solid hsl(218, 20%, 65%);
|
261
282
|
color: #fff;
|
262
|
-
text-shadow:
|
283
|
+
text-shadow: -1px 1px 1px #94a1b8;
|
263
284
|
}
|
264
285
|
.column {
|
265
286
|
height: 100%;
|
@@ -339,9 +360,24 @@ form.inset .buttons {
|
|
339
360
|
text-align: right;
|
340
361
|
}
|
341
362
|
form.overlay input[type="text"],
|
363
|
+
form.overlay input[type="password"],
|
342
364
|
form.overlay input[type="email"] {
|
343
365
|
margin-bottom: 10px;
|
344
366
|
width: 228px;
|
345
367
|
position: relative;
|
346
368
|
left: 10px;
|
347
369
|
}
|
370
|
+
.notification {
|
371
|
+
background: rgba(12, 26, 45, 0.75);
|
372
|
+
border-radius: 30px;
|
373
|
+
color: #fff;
|
374
|
+
font-size: 10pt;
|
375
|
+
font-weight: bold;
|
376
|
+
padding: 5px 100px;
|
377
|
+
position: absolute;
|
378
|
+
top: 50%;
|
379
|
+
left: 50%;
|
380
|
+
text-align: center;
|
381
|
+
text-shadow: 0 1px 1px #000;
|
382
|
+
z-index: 2;
|
383
|
+
}
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: vines
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.3.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- David Graham
|
@@ -11,8 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2011-
|
15
|
-
default_executable:
|
14
|
+
date: 2011-09-28 00:00:00 Z
|
16
15
|
dependencies:
|
17
16
|
- !ruby/object:Gem::Dependency
|
18
17
|
name: activerecord
|
@@ -22,7 +21,7 @@ dependencies:
|
|
22
21
|
requirements:
|
23
22
|
- - ~>
|
24
23
|
- !ruby/object:Gem::Version
|
25
|
-
version:
|
24
|
+
version: 3.1.0
|
26
25
|
type: :runtime
|
27
26
|
version_requirements: *id001
|
28
27
|
- !ruby/object:Gem::Dependency
|
@@ -33,7 +32,7 @@ dependencies:
|
|
33
32
|
requirements:
|
34
33
|
- - ~>
|
35
34
|
- !ruby/object:Gem::Version
|
36
|
-
version:
|
35
|
+
version: 3.0.0
|
37
36
|
type: :runtime
|
38
37
|
version_requirements: *id002
|
39
38
|
- !ruby/object:Gem::Dependency
|
@@ -44,7 +43,7 @@ dependencies:
|
|
44
43
|
requirements:
|
45
44
|
- - ~>
|
46
45
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
46
|
+
version: 0.3.0
|
48
47
|
type: :runtime
|
49
48
|
version_requirements: *id003
|
50
49
|
- !ruby/object:Gem::Dependency
|
@@ -55,7 +54,7 @@ dependencies:
|
|
55
54
|
requirements:
|
56
55
|
- - ~>
|
57
56
|
- !ruby/object:Gem::Version
|
58
|
-
version:
|
57
|
+
version: 0.3.0
|
59
58
|
type: :runtime
|
60
59
|
version_requirements: *id004
|
61
60
|
- !ruby/object:Gem::Dependency
|
@@ -66,7 +65,7 @@ dependencies:
|
|
66
65
|
requirements:
|
67
66
|
- - ~>
|
68
67
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
68
|
+
version: 0.12.10
|
70
69
|
type: :runtime
|
71
70
|
version_requirements: *id005
|
72
71
|
- !ruby/object:Gem::Dependency
|
@@ -77,7 +76,7 @@ dependencies:
|
|
77
76
|
requirements:
|
78
77
|
- - ~>
|
79
78
|
- !ruby/object:Gem::Version
|
80
|
-
version:
|
79
|
+
version: 0.5.2
|
81
80
|
type: :runtime
|
82
81
|
version_requirements: *id006
|
83
82
|
- !ruby/object:Gem::Dependency
|
@@ -88,7 +87,7 @@ dependencies:
|
|
88
87
|
requirements:
|
89
88
|
- - ~>
|
90
89
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
90
|
+
version: 0.2.2
|
92
91
|
type: :runtime
|
93
92
|
version_requirements: *id007
|
94
93
|
- !ruby/object:Gem::Dependency
|
@@ -99,7 +98,7 @@ dependencies:
|
|
99
98
|
requirements:
|
100
99
|
- - ~>
|
101
100
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
101
|
+
version: 1.4.7
|
103
102
|
type: :runtime
|
104
103
|
version_requirements: *id008
|
105
104
|
- !ruby/object:Gem::Dependency
|
@@ -164,12 +163,15 @@ files:
|
|
164
163
|
- lib/vines/command/schema.rb
|
165
164
|
- lib/vines/command/start.rb
|
166
165
|
- lib/vines/command/stop.rb
|
166
|
+
- lib/vines/config/host.rb
|
167
|
+
- lib/vines/config/port.rb
|
167
168
|
- lib/vines/config.rb
|
168
169
|
- lib/vines/contact.rb
|
169
170
|
- lib/vines/daemon.rb
|
170
171
|
- lib/vines/error.rb
|
171
172
|
- lib/vines/jid.rb
|
172
173
|
- lib/vines/kit.rb
|
174
|
+
- lib/vines/log.rb
|
173
175
|
- lib/vines/router.rb
|
174
176
|
- lib/vines/stanza/iq/auth.rb
|
175
177
|
- lib/vines/stanza/iq/disco_info.rb
|
@@ -182,6 +184,7 @@ files:
|
|
182
184
|
- lib/vines/stanza/iq/roster.rb
|
183
185
|
- lib/vines/stanza/iq/session.rb
|
184
186
|
- lib/vines/stanza/iq/vcard.rb
|
187
|
+
- lib/vines/stanza/iq/version.rb
|
185
188
|
- lib/vines/stanza/iq.rb
|
186
189
|
- lib/vines/stanza/message.rb
|
187
190
|
- lib/vines/stanza/presence/error.rb
|
@@ -253,12 +256,10 @@ files:
|
|
253
256
|
- web/apple-touch-icon.png
|
254
257
|
- web/chat/coffeescripts/chat.coffee
|
255
258
|
- web/chat/coffeescripts/init.coffee
|
256
|
-
- web/chat/coffeescripts/logout.coffee
|
257
259
|
- web/chat/index.html
|
258
260
|
- web/chat/javascripts/app.js
|
259
261
|
- web/chat/javascripts/chat.js
|
260
262
|
- web/chat/javascripts/init.js
|
261
|
-
- web/chat/javascripts/logout.js
|
262
263
|
- web/chat/stylesheets/chat.css
|
263
264
|
- web/favicon.png
|
264
265
|
- web/lib/coffeescripts/button.coffee
|
@@ -266,7 +267,9 @@ files:
|
|
266
267
|
- web/lib/coffeescripts/filter.coffee
|
267
268
|
- web/lib/coffeescripts/layout.coffee
|
268
269
|
- web/lib/coffeescripts/login.coffee
|
270
|
+
- web/lib/coffeescripts/logout.coffee
|
269
271
|
- web/lib/coffeescripts/navbar.coffee
|
272
|
+
- web/lib/coffeescripts/notification.coffee
|
270
273
|
- web/lib/coffeescripts/router.coffee
|
271
274
|
- web/lib/coffeescripts/session.coffee
|
272
275
|
- web/lib/coffeescripts/transfer.coffee
|
@@ -282,7 +285,9 @@ files:
|
|
282
285
|
- web/lib/javascripts/jquery.js
|
283
286
|
- web/lib/javascripts/layout.js
|
284
287
|
- web/lib/javascripts/login.js
|
288
|
+
- web/lib/javascripts/logout.js
|
285
289
|
- web/lib/javascripts/navbar.js
|
290
|
+
- web/lib/javascripts/notification.js
|
286
291
|
- web/lib/javascripts/raphael.js
|
287
292
|
- web/lib/javascripts/router.js
|
288
293
|
- web/lib/javascripts/session.js
|
@@ -290,6 +295,7 @@ files:
|
|
290
295
|
- web/lib/javascripts/transfer.js
|
291
296
|
- web/lib/stylesheets/base.css
|
292
297
|
- web/lib/stylesheets/login.css
|
298
|
+
- test/config/host_test.rb
|
293
299
|
- test/config_test.rb
|
294
300
|
- test/contact_test.rb
|
295
301
|
- test/error_test.rb
|
@@ -298,13 +304,18 @@ files:
|
|
298
304
|
- test/kit_test.rb
|
299
305
|
- test/rake_test_loader.rb
|
300
306
|
- test/router_test.rb
|
307
|
+
- test/stanza/iq/disco_info_test.rb
|
308
|
+
- test/stanza/iq/disco_items_test.rb
|
301
309
|
- test/stanza/iq/private_storage_test.rb
|
302
310
|
- test/stanza/iq/roster_test.rb
|
303
311
|
- test/stanza/iq/session_test.rb
|
304
312
|
- test/stanza/iq/vcard_test.rb
|
313
|
+
- test/stanza/iq/version_test.rb
|
305
314
|
- test/stanza/iq_test.rb
|
306
315
|
- test/stanza/message_test.rb
|
316
|
+
- test/stanza/presence/probe_test.rb
|
307
317
|
- test/stanza/presence/subscribe_test.rb
|
318
|
+
- test/stanza_test.rb
|
308
319
|
- test/storage/couchdb_test.rb
|
309
320
|
- test/storage/ldap_test.rb
|
310
321
|
- test/storage/local_test.rb
|
@@ -328,7 +339,6 @@ files:
|
|
328
339
|
- test/stream/server/ready_test.rb
|
329
340
|
- test/token_bucket_test.rb
|
330
341
|
- test/user_test.rb
|
331
|
-
has_rdoc: true
|
332
342
|
homepage: http://www.getvines.com
|
333
343
|
licenses: []
|
334
344
|
|
@@ -352,11 +362,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
352
362
|
requirements: []
|
353
363
|
|
354
364
|
rubyforge_project:
|
355
|
-
rubygems_version: 1.
|
365
|
+
rubygems_version: 1.8.10
|
356
366
|
signing_key:
|
357
367
|
specification_version: 3
|
358
368
|
summary: Vines is an XMPP chat server that's easy to install and run.
|
359
369
|
test_files:
|
370
|
+
- test/config/host_test.rb
|
360
371
|
- test/config_test.rb
|
361
372
|
- test/contact_test.rb
|
362
373
|
- test/error_test.rb
|
@@ -365,13 +376,18 @@ test_files:
|
|
365
376
|
- test/kit_test.rb
|
366
377
|
- test/rake_test_loader.rb
|
367
378
|
- test/router_test.rb
|
379
|
+
- test/stanza/iq/disco_info_test.rb
|
380
|
+
- test/stanza/iq/disco_items_test.rb
|
368
381
|
- test/stanza/iq/private_storage_test.rb
|
369
382
|
- test/stanza/iq/roster_test.rb
|
370
383
|
- test/stanza/iq/session_test.rb
|
371
384
|
- test/stanza/iq/vcard_test.rb
|
385
|
+
- test/stanza/iq/version_test.rb
|
372
386
|
- test/stanza/iq_test.rb
|
373
387
|
- test/stanza/message_test.rb
|
388
|
+
- test/stanza/presence/probe_test.rb
|
374
389
|
- test/stanza/presence/subscribe_test.rb
|
390
|
+
- test/stanza_test.rb
|
375
391
|
- test/storage/couchdb_test.rb
|
376
392
|
- test/storage/ldap_test.rb
|
377
393
|
- test/storage/local_test.rb
|