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 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