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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7a1798af6e47665a55ac7d9140b00f2317c7cf9f
4
- data.tar.gz: 1943594c8954d3cd1255f2b5626b6eee6d08fde1
3
+ metadata.gz: bb6bde537b83a3d4fa31045c127768b5946b15fb
4
+ data.tar.gz: 7657430bfb89a206589e6de59bb7e6d0d9ae8c89
5
5
  SHA512:
6
- metadata.gz: f08853ae51aa21a4526b33955717b903030ac681df09a3d86eb44a5b6a0c39ac92ca9711195450eced0c8918fc94dce7330e9c767581189542cac1a3558e8bda
7
- data.tar.gz: 5e39feee2464f72cdbb66a4f2e8fc2d1bc860fae862d9b2b1600069c7b73b6a4a33796ae97d5182a2a1a6e8433f553323de86ccde79cec54650fb0f3c79321d5
6
+ metadata.gz: a444ab4e80672e97cede59b755e63abd900e9b3e82ad3a020dc80f8fb68539ecb7feccb7dcb5aae9586bee8f22015bb521afec19976ed9b0736603be1fcb64f1
7
+ data.tar.gz: fb8c04a1fee8a2282022f09524ce6d10221186f74a4d9d9d724f5fcf3f4c38966a051afae8aed217bf597e6f580c9fb0dd084841ff7a27880033492089786ee3
@@ -74,7 +74,7 @@ class Colossus
74
74
  # @param user_ids [Array<#to_s>] An array of user ids
75
75
  # (see #get)
76
76
  def get_multi(*user_ids)
77
- engine.get_multi(user_ids.map(&:to_s))
77
+ engine.get_multi(*user_ids.map(&:to_s))
78
78
  end
79
79
 
80
80
  # (see #get)
@@ -49,9 +49,7 @@ class Colossus
49
49
  end
50
50
 
51
51
  def get_multi(*user_ids)
52
- statuses = {}
53
- user_ids.each { |user_id| statuses[user_id] = get(user_id) }
54
- statuses
52
+ user_ids.inject({}) { |memo, user_id| memo.merge!(get(user_id)) }
55
53
  end
56
54
 
57
55
  def get_all
@@ -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'] && message['ext']['user_token']
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 = 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
@@ -1,4 +1,4 @@
1
1
  # The Version
2
2
  class Colossus
3
- VERSION = '0.7.0'
3
+ VERSION = '0.8.0'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: colossus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - antoinelyset