faye 0.8.11 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of faye might be problematic. Click here for more details.
- data/{History.txt → CHANGELOG.md} +126 -105
- data/README.md +36 -0
- data/lib/faye-browser-min.js +2 -1
- data/lib/faye-browser-min.js.map +1 -8
- data/lib/faye-browser.js +923 -607
- data/lib/faye.rb +11 -5
- data/lib/faye/adapters/rack_adapter.rb +80 -85
- data/lib/faye/engines/connection.rb +7 -9
- data/lib/faye/engines/memory.rb +1 -0
- data/lib/faye/engines/proxy.rb +7 -6
- data/lib/faye/mixins/deferrable.rb +15 -0
- data/lib/faye/mixins/logging.rb +11 -22
- data/lib/faye/mixins/publisher.rb +9 -20
- data/lib/faye/protocol/channel.rb +2 -1
- data/lib/faye/protocol/client.rb +70 -48
- data/lib/faye/protocol/envelope.rb +24 -0
- data/lib/faye/protocol/extensible.rb +7 -4
- data/lib/faye/protocol/publication.rb +1 -1
- data/lib/faye/protocol/server.rb +8 -11
- data/lib/faye/protocol/socket.rb +6 -4
- data/lib/faye/protocol/subscription.rb +1 -1
- data/lib/faye/transport/http.rb +20 -27
- data/lib/faye/transport/local.rb +5 -5
- data/lib/faye/transport/transport.rb +42 -12
- data/lib/faye/transport/web_socket.rb +71 -38
- metadata +169 -137
- checksums.yaml +0 -7
- data/README.rdoc +0 -83
- data/spec/browser.html +0 -45
- data/spec/encoding_helper.rb +0 -7
- data/spec/install.sh +0 -78
- data/spec/javascript/channel_spec.js +0 -15
- data/spec/javascript/client_spec.js +0 -729
- data/spec/javascript/dispatcher_spec.js +0 -122
- data/spec/javascript/engine/memory_spec.js +0 -7
- data/spec/javascript/engine_spec.js +0 -417
- data/spec/javascript/faye_spec.js +0 -34
- data/spec/javascript/grammar_spec.js +0 -66
- data/spec/javascript/node_adapter_spec.js +0 -314
- data/spec/javascript/publisher_spec.js +0 -27
- data/spec/javascript/server/connect_spec.js +0 -168
- data/spec/javascript/server/disconnect_spec.js +0 -121
- data/spec/javascript/server/extensions_spec.js +0 -60
- data/spec/javascript/server/handshake_spec.js +0 -145
- data/spec/javascript/server/integration_spec.js +0 -131
- data/spec/javascript/server/publish_spec.js +0 -85
- data/spec/javascript/server/subscribe_spec.js +0 -247
- data/spec/javascript/server/unsubscribe_spec.js +0 -245
- data/spec/javascript/server_spec.js +0 -121
- data/spec/javascript/transport_spec.js +0 -135
- data/spec/node.js +0 -55
- data/spec/phantom.js +0 -17
- data/spec/ruby/channel_spec.rb +0 -17
- data/spec/ruby/client_spec.rb +0 -741
- data/spec/ruby/engine/memory_spec.rb +0 -7
- data/spec/ruby/engine_examples.rb +0 -427
- data/spec/ruby/faye_spec.rb +0 -30
- data/spec/ruby/grammar_spec.rb +0 -68
- data/spec/ruby/publisher_spec.rb +0 -27
- data/spec/ruby/rack_adapter_spec.rb +0 -241
- data/spec/ruby/server/connect_spec.rb +0 -170
- data/spec/ruby/server/disconnect_spec.rb +0 -120
- data/spec/ruby/server/extensions_spec.rb +0 -68
- data/spec/ruby/server/handshake_spec.rb +0 -143
- data/spec/ruby/server/integration_spec.rb +0 -133
- data/spec/ruby/server/publish_spec.rb +0 -81
- data/spec/ruby/server/subscribe_spec.rb +0 -247
- data/spec/ruby/server/unsubscribe_spec.rb +0 -247
- data/spec/ruby/server_spec.rb +0 -121
- data/spec/ruby/transport_spec.rb +0 -136
- data/spec/spec_helper.rb +0 -11
- data/spec/testswarm +0 -42
- data/spec/thin_proxy.rb +0 -37
data/lib/faye/transport/local.rb
CHANGED
@@ -2,17 +2,17 @@ module Faye
|
|
2
2
|
|
3
3
|
class Transport::Local < Transport
|
4
4
|
def self.usable?(client, endpoint, &callback)
|
5
|
-
callback.call(endpoint
|
5
|
+
callback.call(Server === endpoint)
|
6
6
|
end
|
7
7
|
|
8
8
|
def batching?
|
9
9
|
false
|
10
10
|
end
|
11
11
|
|
12
|
-
def request(
|
13
|
-
|
14
|
-
@endpoint.process(
|
15
|
-
receive(Faye.copy_object(responses))
|
12
|
+
def request(envelopes)
|
13
|
+
messages = Faye.copy_object(envelopes.map { |e| e.message })
|
14
|
+
@endpoint.process(messages, nil) do |responses|
|
15
|
+
receive(envelopes, Faye.copy_object(responses))
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
@@ -5,9 +5,10 @@ module Faye
|
|
5
5
|
include Publisher
|
6
6
|
include Timeouts
|
7
7
|
|
8
|
-
|
8
|
+
attr_reader :endpoint
|
9
9
|
|
10
10
|
def initialize(client, endpoint)
|
11
|
+
super()
|
11
12
|
@client = client
|
12
13
|
@endpoint = endpoint
|
13
14
|
@outbox = []
|
@@ -20,17 +21,22 @@ module Faye
|
|
20
21
|
def close
|
21
22
|
end
|
22
23
|
|
24
|
+
def encode(envelopes)
|
25
|
+
''
|
26
|
+
end
|
27
|
+
|
23
28
|
def connection_type
|
24
29
|
self.class.connection_type
|
25
30
|
end
|
26
31
|
|
27
|
-
def send(
|
28
|
-
|
32
|
+
def send(envelope)
|
33
|
+
message = envelope.message
|
34
|
+
client_id = @client.instance_eval { @client_id }
|
35
|
+
debug('Client ? sending message to ?: ?', client_id, @endpoint, message)
|
29
36
|
|
30
|
-
return request([
|
37
|
+
return request([envelope]) unless batching?
|
31
38
|
|
32
|
-
@outbox <<
|
33
|
-
@timeout = timeout
|
39
|
+
@outbox << envelope
|
34
40
|
|
35
41
|
if message['channel'] == Channel::HANDSHAKE
|
36
42
|
return add_timeout(:publish, 0.01) { flush }
|
@@ -40,6 +46,7 @@ module Faye
|
|
40
46
|
@connection_message = message
|
41
47
|
end
|
42
48
|
|
49
|
+
flush_large_batch
|
43
50
|
add_timeout(:publish, Engine::MAX_DELAY) { flush }
|
44
51
|
end
|
45
52
|
|
@@ -50,20 +57,43 @@ module Faye
|
|
50
57
|
@connection_message['advice'] = {'timeout' => 0}
|
51
58
|
end
|
52
59
|
|
53
|
-
request(@outbox
|
60
|
+
request(@outbox)
|
54
61
|
|
55
62
|
@connection_message = nil
|
56
63
|
@outbox = []
|
57
64
|
end
|
58
65
|
|
59
|
-
def
|
60
|
-
|
66
|
+
def flush_large_batch
|
67
|
+
string = encode(@outbox)
|
68
|
+
return if string.size < @client.max_request_size
|
69
|
+
last = @outbox.pop
|
70
|
+
flush(@outbox)
|
71
|
+
@outbox.push(last) if last
|
72
|
+
end
|
73
|
+
|
74
|
+
def receive(envelopes, responses)
|
75
|
+
envelopes.each { |e| e.set_deferred_status(:succeeded) }
|
76
|
+
responses = [responses].flatten
|
77
|
+
client_id = @client.instance_eval { @client_id }
|
78
|
+
debug('Client ? received from ?: ?', client_id, @endpoint, responses)
|
61
79
|
responses.each { |response| @client.receive_message(response) }
|
62
80
|
end
|
63
81
|
|
64
|
-
def
|
65
|
-
|
66
|
-
|
82
|
+
def handle_error(envelopes, immediate = false)
|
83
|
+
envelopes.each { |e| e.set_deferred_status(:failed, immediate) }
|
84
|
+
end
|
85
|
+
|
86
|
+
private
|
87
|
+
|
88
|
+
def get_cookies
|
89
|
+
return @client.cookies
|
90
|
+
@client.cookies.get_cookies(@endpoint.to_s) * ';'
|
91
|
+
end
|
92
|
+
|
93
|
+
def store_cookies(set_cookie)
|
94
|
+
return @client.cookies
|
95
|
+
[*set_cookie].compact.each do |cookie|
|
96
|
+
@client.cookies.set_cookie(@endpoint.to_s, cookie)
|
67
97
|
end
|
68
98
|
end
|
69
99
|
|
@@ -5,7 +5,12 @@ module Faye
|
|
5
5
|
CONNECTING = 2
|
6
6
|
CONNECTED = 3
|
7
7
|
|
8
|
-
|
8
|
+
PROTOCOLS = {
|
9
|
+
'http' => 'ws',
|
10
|
+
'https' => 'wss'
|
11
|
+
}
|
12
|
+
|
13
|
+
include Deferrable
|
9
14
|
|
10
15
|
def self.usable?(client, endpoint, &callback)
|
11
16
|
create(client, endpoint).usable?(&callback)
|
@@ -13,7 +18,7 @@ module Faye
|
|
13
18
|
|
14
19
|
def self.create(client, endpoint)
|
15
20
|
sockets = client.transports[:websocket] ||= {}
|
16
|
-
sockets[endpoint] ||= new(client, endpoint)
|
21
|
+
sockets[endpoint.to_s] ||= new(client, endpoint)
|
17
22
|
end
|
18
23
|
|
19
24
|
def batching?
|
@@ -26,64 +31,92 @@ module Faye
|
|
26
31
|
connect
|
27
32
|
end
|
28
33
|
|
29
|
-
def request(
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
+
def request(envelopes)
|
35
|
+
callback do |socket|
|
36
|
+
next unless socket
|
37
|
+
envelopes.each { |envelope| @pending.add(envelope) }
|
38
|
+
messages = envelopes.map { |e| e.message }
|
39
|
+
socket.send(Faye.to_json(messages))
|
40
|
+
end
|
34
41
|
connect
|
35
42
|
end
|
36
43
|
|
37
|
-
def close
|
38
|
-
return unless @socket
|
39
|
-
@socket.onclose = @socket.onerror = nil
|
40
|
-
@socket.close
|
41
|
-
@socket = nil
|
42
|
-
set_deferred_status(:deferred)
|
43
|
-
@state = UNCONNECTED
|
44
|
-
end
|
45
|
-
|
46
44
|
def connect
|
47
45
|
@state ||= UNCONNECTED
|
48
46
|
return unless @state == UNCONNECTED
|
49
|
-
|
50
47
|
@state = CONNECTING
|
51
48
|
|
52
|
-
|
49
|
+
headers = @client.headers.dup
|
50
|
+
headers['Cookie'] = get_cookies
|
51
|
+
|
52
|
+
url = @endpoint.dup
|
53
|
+
url.scheme = PROTOCOLS[url.scheme]
|
54
|
+
socket = Faye::WebSocket::Client.new(url.to_s, [], :headers => headers)
|
53
55
|
|
54
|
-
|
56
|
+
socket.onopen = lambda do |*args|
|
57
|
+
store_cookies(socket.headers['Set-Cookie'])
|
58
|
+
@socket = socket
|
59
|
+
@pending = Set.new
|
55
60
|
@state = CONNECTED
|
56
61
|
@ever_connected = true
|
57
|
-
|
58
|
-
|
62
|
+
ping
|
63
|
+
set_deferred_status(:succeeded, socket)
|
59
64
|
end
|
60
65
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
messages.each { |message| @messages.delete(message['id']) }
|
66
|
-
receive(messages)
|
67
|
-
end
|
66
|
+
closed = false
|
67
|
+
socket.onclose = socket.onerror = lambda do |*args|
|
68
|
+
return if closed
|
69
|
+
closed = true
|
68
70
|
|
69
|
-
@socket.onclose = @socket.onerror = lambda do |*args|
|
70
71
|
was_connected = (@state == CONNECTED)
|
71
|
-
|
72
|
+
socket.onopen = socket.onclose = socket.onerror = socket.onmessage = nil
|
73
|
+
|
74
|
+
@socket = nil
|
72
75
|
@state = UNCONNECTED
|
76
|
+
remove_timeout(:ping)
|
77
|
+
set_deferred_status(:unknown)
|
78
|
+
|
79
|
+
pending = @pending ? @pending.to_a : []
|
80
|
+
@pending = nil
|
81
|
+
|
82
|
+
if was_connected
|
83
|
+
handle_error(pending, true)
|
84
|
+
elsif @ever_connected
|
85
|
+
handle_error(pending)
|
86
|
+
else
|
87
|
+
set_deferred_status(:failed)
|
88
|
+
end
|
89
|
+
end
|
73
90
|
|
74
|
-
|
91
|
+
socket.onmessage = lambda do |event|
|
92
|
+
messages = MultiJson.load(event.data)
|
93
|
+
envelopes = []
|
75
94
|
|
76
|
-
next
|
77
|
-
|
95
|
+
next if messages.nil?
|
96
|
+
messages = [messages].flatten
|
78
97
|
|
79
|
-
|
80
|
-
|
98
|
+
messages.each do |message|
|
99
|
+
next unless message.has_key?('successful')
|
100
|
+
next unless envelope = @pending.find { |e| e.id == message['id'] }
|
101
|
+
@pending.delete(envelope)
|
102
|
+
envelopes << envelope
|
103
|
+
end
|
104
|
+
receive(envelopes, messages)
|
81
105
|
end
|
82
106
|
end
|
83
107
|
|
84
|
-
def
|
85
|
-
return unless @
|
86
|
-
|
108
|
+
def close
|
109
|
+
return unless @socket
|
110
|
+
@socket.close
|
111
|
+
end
|
112
|
+
|
113
|
+
private
|
114
|
+
|
115
|
+
def ping
|
116
|
+
return unless @socket
|
117
|
+
@socket.send('[]')
|
118
|
+
timeout = @client.instance_eval { @advice['timeout'] }
|
119
|
+
add_timeout(:ping, timeout/2000.0) { ping }
|
87
120
|
end
|
88
121
|
end
|
89
122
|
|
metadata
CHANGED
@@ -1,384 +1,416 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faye
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- James Coglan
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2013-10-01 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: cookiejar
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- -
|
19
|
+
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
19
21
|
version: 0.3.0
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- -
|
27
|
+
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 0.3.0
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: em-http-request
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- -
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: 0.3.0
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- -
|
43
|
+
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
40
45
|
version: 0.3.0
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: eventmachine
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
|
-
- -
|
51
|
+
- - ! '>='
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: 0.12.0
|
48
54
|
type: :runtime
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: 0.12.0
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: faye-websocket
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
|
-
- -
|
67
|
+
- - ! '>='
|
60
68
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
69
|
+
version: 0.7.0
|
62
70
|
type: :runtime
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
|
-
- -
|
75
|
+
- - ! '>='
|
67
76
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
77
|
+
version: 0.7.0
|
69
78
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
79
|
+
name: multi_json
|
71
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
72
82
|
requirements:
|
73
|
-
- -
|
83
|
+
- - ! '>='
|
74
84
|
- !ruby/object:Gem::Version
|
75
85
|
version: 1.0.0
|
76
86
|
type: :runtime
|
77
87
|
prerelease: false
|
78
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
79
90
|
requirements:
|
80
|
-
- -
|
91
|
+
- - ! '>='
|
81
92
|
- !ruby/object:Gem::Version
|
82
93
|
version: 1.0.0
|
83
94
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
95
|
+
name: rack
|
85
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
86
98
|
requirements:
|
87
|
-
- -
|
99
|
+
- - ! '>='
|
88
100
|
- !ruby/object:Gem::Version
|
89
101
|
version: 1.0.0
|
90
102
|
type: :runtime
|
91
103
|
prerelease: false
|
92
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
93
106
|
requirements:
|
94
|
-
- -
|
107
|
+
- - ! '>='
|
95
108
|
- !ruby/object:Gem::Version
|
96
109
|
version: 1.0.0
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: websocket-driver
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.3.0
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 0.3.0
|
97
126
|
- !ruby/object:Gem::Dependency
|
98
127
|
name: compass
|
99
128
|
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
100
130
|
requirements:
|
101
|
-
- -
|
131
|
+
- - ~>
|
102
132
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0.
|
133
|
+
version: 0.11.0
|
104
134
|
type: :development
|
105
135
|
prerelease: false
|
106
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
107
138
|
requirements:
|
108
|
-
- -
|
139
|
+
- - ~>
|
109
140
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.
|
141
|
+
version: 0.11.0
|
111
142
|
- !ruby/object:Gem::Dependency
|
112
143
|
name: haml
|
113
144
|
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
114
146
|
requirements:
|
115
|
-
- -
|
147
|
+
- - ~>
|
116
148
|
- !ruby/object:Gem::Version
|
117
149
|
version: 3.1.0
|
118
150
|
type: :development
|
119
151
|
prerelease: false
|
120
152
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
121
154
|
requirements:
|
122
|
-
- -
|
155
|
+
- - ~>
|
123
156
|
- !ruby/object:Gem::Version
|
124
157
|
version: 3.1.0
|
125
158
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
159
|
+
name: puma
|
127
160
|
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
128
162
|
requirements:
|
129
|
-
- -
|
163
|
+
- - ! '>='
|
130
164
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
165
|
+
version: 2.0.0
|
132
166
|
type: :development
|
133
167
|
prerelease: false
|
134
168
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
135
170
|
requirements:
|
136
|
-
- -
|
171
|
+
- - ! '>='
|
137
172
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
173
|
+
version: 2.0.0
|
139
174
|
- !ruby/object:Gem::Dependency
|
140
175
|
name: rake
|
141
176
|
requirement: !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
142
178
|
requirements:
|
143
|
-
- -
|
179
|
+
- - ! '>='
|
144
180
|
- !ruby/object:Gem::Version
|
145
181
|
version: '0'
|
146
182
|
type: :development
|
147
183
|
prerelease: false
|
148
184
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
149
186
|
requirements:
|
150
|
-
- -
|
187
|
+
- - ! '>='
|
151
188
|
- !ruby/object:Gem::Version
|
152
189
|
version: '0'
|
153
190
|
- !ruby/object:Gem::Dependency
|
154
191
|
name: rspec
|
155
192
|
requirement: !ruby/object:Gem::Requirement
|
193
|
+
none: false
|
156
194
|
requirements:
|
157
|
-
- -
|
195
|
+
- - ! '>='
|
158
196
|
- !ruby/object:Gem::Version
|
159
197
|
version: '0'
|
160
198
|
type: :development
|
161
199
|
prerelease: false
|
162
200
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
163
202
|
requirements:
|
164
|
-
- -
|
203
|
+
- - ! '>='
|
165
204
|
- !ruby/object:Gem::Version
|
166
205
|
version: '0'
|
167
206
|
- !ruby/object:Gem::Dependency
|
168
207
|
name: rack-proxy
|
169
208
|
requirement: !ruby/object:Gem::Requirement
|
209
|
+
none: false
|
170
210
|
requirements:
|
171
|
-
- -
|
211
|
+
- - ~>
|
172
212
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
213
|
+
version: 0.4.0
|
174
214
|
type: :development
|
175
215
|
prerelease: false
|
176
216
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
none: false
|
177
218
|
requirements:
|
178
|
-
- -
|
219
|
+
- - ~>
|
179
220
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
221
|
+
version: 0.4.0
|
181
222
|
- !ruby/object:Gem::Dependency
|
182
223
|
name: rack-test
|
183
224
|
requirement: !ruby/object:Gem::Requirement
|
225
|
+
none: false
|
184
226
|
requirements:
|
185
|
-
- -
|
227
|
+
- - ! '>='
|
186
228
|
- !ruby/object:Gem::Version
|
187
229
|
version: '0'
|
188
230
|
type: :development
|
189
231
|
prerelease: false
|
190
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
none: false
|
191
234
|
requirements:
|
192
|
-
- -
|
235
|
+
- - ! '>='
|
193
236
|
- !ruby/object:Gem::Version
|
194
237
|
version: '0'
|
195
238
|
- !ruby/object:Gem::Dependency
|
196
|
-
name:
|
239
|
+
name: RedCloth
|
197
240
|
requirement: !ruby/object:Gem::Requirement
|
241
|
+
none: false
|
198
242
|
requirements:
|
199
|
-
- -
|
243
|
+
- - ~>
|
200
244
|
- !ruby/object:Gem::Version
|
201
|
-
version:
|
245
|
+
version: 3.0.0
|
202
246
|
type: :development
|
203
247
|
prerelease: false
|
204
248
|
version_requirements: !ruby/object:Gem::Requirement
|
249
|
+
none: false
|
205
250
|
requirements:
|
206
|
-
- -
|
251
|
+
- - ~>
|
207
252
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
253
|
+
version: 3.0.0
|
209
254
|
- !ruby/object:Gem::Dependency
|
210
|
-
name:
|
255
|
+
name: sinatra
|
211
256
|
requirement: !ruby/object:Gem::Requirement
|
257
|
+
none: false
|
212
258
|
requirements:
|
213
|
-
- -
|
259
|
+
- - ! '>='
|
214
260
|
- !ruby/object:Gem::Version
|
215
|
-
version:
|
261
|
+
version: '0'
|
216
262
|
type: :development
|
217
263
|
prerelease: false
|
218
264
|
version_requirements: !ruby/object:Gem::Requirement
|
265
|
+
none: false
|
219
266
|
requirements:
|
220
|
-
- -
|
267
|
+
- - ! '>='
|
221
268
|
- !ruby/object:Gem::Version
|
222
|
-
version:
|
269
|
+
version: '0'
|
223
270
|
- !ruby/object:Gem::Dependency
|
224
|
-
name:
|
271
|
+
name: staticmatic
|
225
272
|
requirement: !ruby/object:Gem::Requirement
|
273
|
+
none: false
|
226
274
|
requirements:
|
227
|
-
- -
|
275
|
+
- - ! '>='
|
228
276
|
- !ruby/object:Gem::Version
|
229
277
|
version: '0'
|
230
278
|
type: :development
|
231
279
|
prerelease: false
|
232
280
|
version_requirements: !ruby/object:Gem::Requirement
|
281
|
+
none: false
|
233
282
|
requirements:
|
234
|
-
- -
|
283
|
+
- - ! '>='
|
235
284
|
- !ruby/object:Gem::Version
|
236
285
|
version: '0'
|
237
286
|
- !ruby/object:Gem::Dependency
|
238
|
-
name:
|
287
|
+
name: rainbows
|
239
288
|
requirement: !ruby/object:Gem::Requirement
|
289
|
+
none: false
|
240
290
|
requirements:
|
241
|
-
- -
|
291
|
+
- - ~>
|
242
292
|
- !ruby/object:Gem::Version
|
243
|
-
version:
|
293
|
+
version: 4.4.0
|
244
294
|
type: :development
|
245
295
|
prerelease: false
|
246
296
|
version_requirements: !ruby/object:Gem::Requirement
|
297
|
+
none: false
|
247
298
|
requirements:
|
248
|
-
- -
|
299
|
+
- - ~>
|
249
300
|
- !ruby/object:Gem::Version
|
250
|
-
version:
|
301
|
+
version: 4.4.0
|
302
|
+
- !ruby/object:Gem::Dependency
|
303
|
+
name: thin
|
304
|
+
requirement: !ruby/object:Gem::Requirement
|
305
|
+
none: false
|
306
|
+
requirements:
|
307
|
+
- - ! '>='
|
308
|
+
- !ruby/object:Gem::Version
|
309
|
+
version: 1.2.0
|
310
|
+
type: :development
|
311
|
+
prerelease: false
|
312
|
+
version_requirements: !ruby/object:Gem::Requirement
|
313
|
+
none: false
|
314
|
+
requirements:
|
315
|
+
- - ! '>='
|
316
|
+
- !ruby/object:Gem::Version
|
317
|
+
version: 1.2.0
|
251
318
|
- !ruby/object:Gem::Dependency
|
252
|
-
name:
|
319
|
+
name: goliath
|
253
320
|
requirement: !ruby/object:Gem::Requirement
|
321
|
+
none: false
|
254
322
|
requirements:
|
255
|
-
- -
|
323
|
+
- - ! '>='
|
256
324
|
- !ruby/object:Gem::Version
|
257
325
|
version: '0'
|
258
326
|
type: :development
|
259
327
|
prerelease: false
|
260
328
|
version_requirements: !ruby/object:Gem::Requirement
|
329
|
+
none: false
|
261
330
|
requirements:
|
262
|
-
- -
|
331
|
+
- - ! '>='
|
263
332
|
- !ruby/object:Gem::Version
|
264
333
|
version: '0'
|
265
334
|
- !ruby/object:Gem::Dependency
|
266
|
-
name:
|
335
|
+
name: passenger
|
267
336
|
requirement: !ruby/object:Gem::Requirement
|
337
|
+
none: false
|
268
338
|
requirements:
|
269
|
-
- -
|
339
|
+
- - ! '>='
|
270
340
|
- !ruby/object:Gem::Version
|
271
|
-
version:
|
341
|
+
version: 4.0.0
|
272
342
|
type: :development
|
273
343
|
prerelease: false
|
274
344
|
version_requirements: !ruby/object:Gem::Requirement
|
345
|
+
none: false
|
275
346
|
requirements:
|
276
|
-
- -
|
347
|
+
- - ! '>='
|
277
348
|
- !ruby/object:Gem::Version
|
278
|
-
version:
|
349
|
+
version: 4.0.0
|
279
350
|
description:
|
280
351
|
email: jcoglan@gmail.com
|
281
352
|
executables: []
|
282
353
|
extensions: []
|
283
354
|
extra_rdoc_files:
|
284
|
-
- README.
|
355
|
+
- README.md
|
285
356
|
files:
|
286
|
-
-
|
287
|
-
- README.
|
357
|
+
- CHANGELOG.md
|
358
|
+
- README.md
|
359
|
+
- lib/faye-browser.js
|
288
360
|
- lib/faye-browser-min.js
|
289
361
|
- lib/faye-browser-min.js.map
|
290
|
-
- lib/faye-browser.js
|
291
362
|
- lib/faye.rb
|
292
|
-
- lib/faye/
|
293
|
-
- lib/faye/
|
294
|
-
- lib/faye/engines/connection.rb
|
295
|
-
- lib/faye/engines/memory.rb
|
296
|
-
- lib/faye/engines/proxy.rb
|
297
|
-
- lib/faye/error.rb
|
298
|
-
- lib/faye/mixins/logging.rb
|
299
|
-
- lib/faye/mixins/publisher.rb
|
300
|
-
- lib/faye/mixins/timeouts.rb
|
363
|
+
- lib/faye/protocol/grammar.rb
|
364
|
+
- lib/faye/protocol/socket.rb
|
301
365
|
- lib/faye/protocol/channel.rb
|
302
|
-
- lib/faye/protocol/client.rb
|
303
366
|
- lib/faye/protocol/extensible.rb
|
304
|
-
- lib/faye/protocol/grammar.rb
|
305
367
|
- lib/faye/protocol/publication.rb
|
306
|
-
- lib/faye/protocol/server.rb
|
307
|
-
- lib/faye/protocol/socket.rb
|
308
368
|
- lib/faye/protocol/subscription.rb
|
369
|
+
- lib/faye/protocol/envelope.rb
|
370
|
+
- lib/faye/protocol/server.rb
|
371
|
+
- lib/faye/protocol/client.rb
|
372
|
+
- lib/faye/engines/memory.rb
|
373
|
+
- lib/faye/engines/proxy.rb
|
374
|
+
- lib/faye/engines/connection.rb
|
375
|
+
- lib/faye/util/namespace.rb
|
376
|
+
- lib/faye/adapters/static_server.rb
|
377
|
+
- lib/faye/adapters/rack_adapter.rb
|
378
|
+
- lib/faye/mixins/timeouts.rb
|
379
|
+
- lib/faye/mixins/logging.rb
|
380
|
+
- lib/faye/mixins/deferrable.rb
|
381
|
+
- lib/faye/mixins/publisher.rb
|
382
|
+
- lib/faye/error.rb
|
383
|
+
- lib/faye/transport/web_socket.rb
|
309
384
|
- lib/faye/transport/http.rb
|
310
385
|
- lib/faye/transport/local.rb
|
311
386
|
- lib/faye/transport/transport.rb
|
312
|
-
- lib/faye/transport/web_socket.rb
|
313
|
-
- lib/faye/util/namespace.rb
|
314
|
-
- spec/browser.html
|
315
|
-
- spec/encoding_helper.rb
|
316
|
-
- spec/install.sh
|
317
|
-
- spec/javascript/channel_spec.js
|
318
|
-
- spec/javascript/client_spec.js
|
319
|
-
- spec/javascript/dispatcher_spec.js
|
320
|
-
- spec/javascript/engine/memory_spec.js
|
321
|
-
- spec/javascript/engine_spec.js
|
322
|
-
- spec/javascript/faye_spec.js
|
323
|
-
- spec/javascript/grammar_spec.js
|
324
|
-
- spec/javascript/node_adapter_spec.js
|
325
|
-
- spec/javascript/publisher_spec.js
|
326
|
-
- spec/javascript/server/connect_spec.js
|
327
|
-
- spec/javascript/server/disconnect_spec.js
|
328
|
-
- spec/javascript/server/extensions_spec.js
|
329
|
-
- spec/javascript/server/handshake_spec.js
|
330
|
-
- spec/javascript/server/integration_spec.js
|
331
|
-
- spec/javascript/server/publish_spec.js
|
332
|
-
- spec/javascript/server/subscribe_spec.js
|
333
|
-
- spec/javascript/server/unsubscribe_spec.js
|
334
|
-
- spec/javascript/server_spec.js
|
335
|
-
- spec/javascript/transport_spec.js
|
336
|
-
- spec/node.js
|
337
|
-
- spec/phantom.js
|
338
|
-
- spec/ruby/channel_spec.rb
|
339
|
-
- spec/ruby/client_spec.rb
|
340
|
-
- spec/ruby/engine/memory_spec.rb
|
341
|
-
- spec/ruby/engine_examples.rb
|
342
|
-
- spec/ruby/faye_spec.rb
|
343
|
-
- spec/ruby/grammar_spec.rb
|
344
|
-
- spec/ruby/publisher_spec.rb
|
345
|
-
- spec/ruby/rack_adapter_spec.rb
|
346
|
-
- spec/ruby/server/connect_spec.rb
|
347
|
-
- spec/ruby/server/disconnect_spec.rb
|
348
|
-
- spec/ruby/server/extensions_spec.rb
|
349
|
-
- spec/ruby/server/handshake_spec.rb
|
350
|
-
- spec/ruby/server/integration_spec.rb
|
351
|
-
- spec/ruby/server/publish_spec.rb
|
352
|
-
- spec/ruby/server/subscribe_spec.rb
|
353
|
-
- spec/ruby/server/unsubscribe_spec.rb
|
354
|
-
- spec/ruby/server_spec.rb
|
355
|
-
- spec/ruby/transport_spec.rb
|
356
|
-
- spec/spec_helper.rb
|
357
|
-
- spec/testswarm
|
358
|
-
- spec/thin_proxy.rb
|
359
387
|
homepage: http://faye.jcoglan.com
|
360
|
-
licenses:
|
361
|
-
|
388
|
+
licenses:
|
389
|
+
- MIT
|
362
390
|
post_install_message:
|
363
391
|
rdoc_options:
|
364
|
-
-
|
365
|
-
- README.
|
392
|
+
- --main
|
393
|
+
- README.md
|
394
|
+
- --markup
|
395
|
+
- markdown
|
366
396
|
require_paths:
|
367
397
|
- lib
|
368
398
|
required_ruby_version: !ruby/object:Gem::Requirement
|
399
|
+
none: false
|
369
400
|
requirements:
|
370
|
-
- -
|
401
|
+
- - ! '>='
|
371
402
|
- !ruby/object:Gem::Version
|
372
403
|
version: '0'
|
373
404
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
405
|
+
none: false
|
374
406
|
requirements:
|
375
|
-
- -
|
407
|
+
- - ! '>='
|
376
408
|
- !ruby/object:Gem::Version
|
377
409
|
version: '0'
|
378
410
|
requirements: []
|
379
411
|
rubyforge_project:
|
380
|
-
rubygems_version:
|
412
|
+
rubygems_version: 1.8.23
|
381
413
|
signing_key:
|
382
|
-
specification_version:
|
414
|
+
specification_version: 3
|
383
415
|
summary: Simple pub/sub messaging for the web
|
384
416
|
test_files: []
|