colossus 0.7.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/colossus.rb +1 -1
- data/lib/colossus/engines/memory/memory.rb +1 -3
- data/lib/colossus/faye/extension.rb +4 -1
- data/lib/colossus/simple_writer_server.rb +27 -6
- data/lib/colossus/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb6bde537b83a3d4fa31045c127768b5946b15fb
|
4
|
+
data.tar.gz: 7657430bfb89a206589e6de59bb7e6d0d9ae8c89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a444ab4e80672e97cede59b755e63abd900e9b3e82ad3a020dc80f8fb68539ecb7feccb7dcb5aae9586bee8f22015bb521afec19976ed9b0736603be1fcb64f1
|
7
|
+
data.tar.gz: fb8c04a1fee8a2282022f09524ce6d10221186f74a4d9d9d724f5fcf3f4c38966a051afae8aed217bf597e6f580c9fb0dd084841ff7a27880033492089786ee3
|
data/lib/colossus.rb
CHANGED
@@ -22,13 +22,16 @@ class Colossus
|
|
22
22
|
handle_user_action(message)
|
23
23
|
message.delete('data')
|
24
24
|
message.delete('ext')
|
25
|
+
elsif message['ext']['writer_token']
|
26
|
+
message.delete('ext')
|
25
27
|
end
|
26
28
|
|
27
29
|
callback.call(message)
|
28
30
|
end
|
29
31
|
|
30
32
|
def acceptable?(message)
|
31
|
-
message['ext'] &&
|
33
|
+
message['ext'] &&
|
34
|
+
(message['ext']['user_token'] || message['ext']['writer_token'])
|
32
35
|
end
|
33
36
|
|
34
37
|
def handle_user_action(message)
|
@@ -1,13 +1,17 @@
|
|
1
1
|
class Colossus
|
2
2
|
class SimpleWriterServer
|
3
|
-
attr_reader :faye_extension
|
3
|
+
attr_reader :faye_extension, :faye_client, :faye_client_extension
|
4
4
|
|
5
5
|
def initialize(faye_extension)
|
6
|
-
@faye_extension
|
6
|
+
@faye_extension = faye_extension
|
7
|
+
@faye_client = faye_extension.faye.get_client
|
8
|
+
@faye_client_extension = FayeClientExtension.new
|
9
|
+
@faye_client.add_extension(faye_client_extension)
|
7
10
|
end
|
8
11
|
|
9
12
|
def presence(writer_token, optional_user_ids = nil)
|
10
13
|
raise 'Invalid token' unless valid?(writer_token)
|
14
|
+
faye_client_extension.writer_token = writer_token
|
11
15
|
|
12
16
|
case optional_user_ids
|
13
17
|
when Array
|
@@ -23,6 +27,7 @@ class Colossus
|
|
23
27
|
|
24
28
|
def push(writer_token, user_ids, message)
|
25
29
|
raise 'Invalid token' unless valid?(writer_token)
|
30
|
+
faye_client_extension.writer_token = writer_token
|
26
31
|
|
27
32
|
case user_ids
|
28
33
|
when Array
|
@@ -40,12 +45,28 @@ class Colossus
|
|
40
45
|
colossus.verifier.verify_writer_token(writer_token)
|
41
46
|
end
|
42
47
|
|
43
|
-
def faye_client
|
44
|
-
faye_extension.faye.get_client
|
45
|
-
end
|
46
|
-
|
47
48
|
def colossus
|
48
49
|
faye_extension.colossus
|
49
50
|
end
|
51
|
+
|
52
|
+
class FayeClientExtension
|
53
|
+
attr_accessor :writer_token
|
54
|
+
|
55
|
+
def initialize(writer_token = nil)
|
56
|
+
@writer_token = writer_token
|
57
|
+
end
|
58
|
+
|
59
|
+
def incoming(message, callback)
|
60
|
+
callback.call(message)
|
61
|
+
end
|
62
|
+
|
63
|
+
def outgoing(message, callback)
|
64
|
+
message['ext'] ||= {}
|
65
|
+
message['ext']['writer_token'] = writer_token
|
66
|
+
puts message
|
67
|
+
|
68
|
+
callback.call(message)
|
69
|
+
end
|
70
|
+
end
|
50
71
|
end
|
51
72
|
end
|
data/lib/colossus/version.rb
CHANGED