deepstream 1.0.5 → 1.0.10

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
  SHA256:
3
- metadata.gz: e0167226999cb5c1382b9d396aa2e8ce699fae587de39a970e9bdd64427a9e2a
4
- data.tar.gz: 4b703477f808e422b964a0bbe0d23c7d0eef50d6bd815c109a334a59f98163e3
3
+ metadata.gz: 2bfc3a3e7fb0cbc56c2f9ec0e30ab73136a62d64079741c29d5a812261eb1979
4
+ data.tar.gz: 4a3fc3e674eafc3ae4a7e622da0dd086c85ed34ab55d0c6e6c03cb32c5a6d377
5
5
  SHA512:
6
- metadata.gz: 7b8c909ac4d4dc9117749a63e077d423f995ac340ca6bd843286c6dee0bc7eda4285ff69efb98a7285924ba83335832e45165ad265cecf356dbdf4f71ca44837
7
- data.tar.gz: 642ded8ef97cc5429331accc0d86405e5938b8fe660a3dfc36bc1d2690799df882002d6bb4d4f3769cafac8bb1ca70ff6d341a7a64c31b90c31f3c5a1443dda3
6
+ metadata.gz: 560920f9777edd39cdf2d062c855868dac777d8594d67025173353ae295804c11428562fc87dfb56ff5660452fcd331d0735ee7c7cc85804cca6d790b676707e
7
+ data.tar.gz: '09e60641ee2d502e3fc1f8f5ea017377c4ae2d0aa7dc4a96e1d606b6c4f9d9db509af3edaa543c03e462542042debc1f299c017d5e91986cd0c844ab280bd808'
data/deepstream.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "deepstream"
7
- spec.version = "1.0.5"
7
+ spec.version = "1.0.10"
8
8
  spec.authors = ["Currency-One S.A."]
9
9
  spec.email = ["ruby@currency-one.com"]
10
10
 
@@ -17,12 +17,12 @@ Gem::Specification.new do |spec|
17
17
  spec.bindir = "exe"
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ["lib"]
20
- spec.required_ruby_version = '>= 2.3.0'
20
+ spec.required_ruby_version = '>= 2.5.0'
21
21
  spec.license = "Apache-2.0"
22
- spec.add_runtime_dependency 'async', '~> 1.25.0'
23
- spec.add_runtime_dependency 'async-io', '~> 1.29.0'
24
- spec.add_runtime_dependency 'async-http', '~> 0.52.1'
25
- spec.add_runtime_dependency 'async-websocket', '~> 0.14.0'
22
+ spec.add_runtime_dependency 'async', '~> 1.28.9'
23
+ spec.add_runtime_dependency 'async-io', '~> 1.30.2'
24
+ spec.add_runtime_dependency 'async-http', '~> 0.54.1'
25
+ spec.add_runtime_dependency 'async-websocket', '~> 0.17.0'
26
26
  spec.add_development_dependency 'cucumber'
27
27
  spec.add_development_dependency 'reel'
28
28
  spec.add_development_dependency 'pry'
@@ -3,22 +3,10 @@ module Async
3
3
  class Client < ::Protocol::HTTP::Middleware
4
4
  include ::Protocol::WebSocket::Headers
5
5
 
6
- def self.open(endpoint, *args, &block)
7
- client = self.new(HTTP::Client.new(endpoint, *args), mask: true)
8
-
9
- return client unless block_given?
10
-
11
- begin
12
- yield client
13
- ensure
14
- client.close
15
- end
16
- end
17
-
18
6
  def self.connect(endpoint, *args, **options, &block)
19
7
  self.open(endpoint, *args) do |client|
20
- connection = client.connect(endpoint.path, **options)
21
-
8
+ connection = client.connect(endpoint.authority, endpoint.path, **options)
9
+
22
10
  return connection unless block_given?
23
11
 
24
12
  begin
@@ -34,8 +34,9 @@ module Deepstream
34
34
  @challenge_denied, @@deliberate_close = false
35
35
  @state = CONNECTION_STATE::CLOSED
36
36
  @verbose = @options[:verbose]
37
+ @reinitialize_master = @options[:reinitialize_master]
37
38
  @log = Async.logger
38
- @never_connected_before = true
39
+ @connected_before = false
39
40
  connect
40
41
  end
41
42
 
@@ -156,7 +157,7 @@ module Deepstream
156
157
  def on_connection_ack
157
158
  @state = CONNECTION_STATE::AUTHENTICATING
158
159
  @message_buffer.delete_if { |msg| msg.action == ACTION::PATCH }
159
- @record_handler.reinitialize unless @never_connected_before
160
+ @record_handler.reinitialize if @connected_before
160
161
  login
161
162
  end
162
163
 
@@ -166,7 +167,7 @@ module Deepstream
166
167
  end
167
168
 
168
169
  def on_login
169
- @never_connected_before = false
170
+ @connected_before = true
170
171
  @state = CONNECTION_STATE::OPEN
171
172
  every(@options[:heartbeat_interval]) { check_heartbeat } if @options[:heartbeat_interval]
172
173
  resubscribe
@@ -38,7 +38,8 @@ module Deepstream
38
38
  heartbeat_interval: nil,
39
39
  in_thread: true,
40
40
  verbose: false,
41
- debug: false
41
+ debug: false,
42
+ reinitialize_master: false
42
43
  }
43
44
  end
44
45
 
@@ -5,6 +5,8 @@ module Deepstream
5
5
  class List < Record
6
6
  LIST_CALLBACKS = %i{added removed}
7
7
 
8
+ attr_reader :version
9
+
8
10
  def initialize(*args)
9
11
  super
10
12
  @data = []
@@ -15,7 +17,7 @@ module Deepstream
15
17
  unless @data.include?(record_name)
16
18
  @data << record_name
17
19
  set
18
- notify_listeners(:removed, record_name)
20
+ notify_listeners(:added, record_name)
19
21
  end
20
22
  rescue => e
21
23
  @client.on_exception(e)
@@ -90,12 +92,12 @@ module Deepstream
90
92
  def notify_listeners(cb_name, uid)
91
93
  (@handlers[cb_name] || []).each do |proc|
92
94
  record = @client.get(uid)
93
- if record.version
94
- proc.call()
95
+ if record.__version
96
+ proc.call(record)
95
97
  else
96
98
  record.when_ready(&proc)
97
99
  end
98
100
  end
99
101
  end
100
102
  end
101
- end
103
+ end
@@ -17,6 +17,14 @@ module Deepstream
17
17
  @ready_callback = nil
18
18
  end
19
19
 
20
+ def __version
21
+ @version
22
+ end
23
+
24
+ def __name
25
+ @name
26
+ end
27
+
20
28
  def reset_version
21
29
  @version = 0
22
30
  end
@@ -32,8 +40,8 @@ module Deepstream
32
40
  end
33
41
 
34
42
  def end_reinitializing
35
- reset_version
36
- set(@data_cache)
43
+ reset_version if @client.options[:reinitialize_master]
44
+ set(@data_cache) if @client.options[:reinitialize_master]
37
45
  @is_reinitializing = false
38
46
  end
39
47
 
@@ -32,6 +32,7 @@ module Deepstream
32
32
  if list
33
33
  name.prepend("#{list}/")
34
34
  @records[list] ||= List.new(@client, list)
35
+ sleep 0.1 while @records[list].version.nil?
35
36
  @records[list].add(name)
36
37
  end
37
38
  @records[name] ||= Record.new(@client, name)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deepstream
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Currency-One S.A.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-10 00:00:00.000000000 Z
11
+ date: 2021-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.25.0
19
+ version: 1.28.9
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.25.0
26
+ version: 1.28.9
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: async-io
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.29.0
33
+ version: 1.30.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.29.0
40
+ version: 1.30.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: async-http
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.52.1
47
+ version: 0.54.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.52.1
54
+ version: 0.54.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: async-websocket
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.14.0
61
+ version: 0.17.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.14.0
68
+ version: 0.17.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: cucumber
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -175,7 +175,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
175
175
  requirements:
176
176
  - - ">="
177
177
  - !ruby/object:Gem::Version
178
- version: 2.3.0
178
+ version: 2.5.0
179
179
  required_rubygems_version: !ruby/object:Gem::Requirement
180
180
  requirements:
181
181
  - - ">="