deepstream 1.0.5 → 1.0.10

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