colossus 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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