isomorfeus-transport 2.2.1 → 2.2.4

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: 61b2633519cf813c85bc85e891ccbad116292cb0aeb49ed03f6cd4eba35b219e
4
- data.tar.gz: 80400343ed8826cab18f81f66a4077142efaec2e8e09fc34c6fa66aec75ef9dc
3
+ metadata.gz: b76c7acbb3e9f1c210ecf2c75ff69a3fe0a029ebc1be086609aa38423214fe16
4
+ data.tar.gz: ea7ea29ee9770e909eecd104b40b1e94db9d033f054ea864eae5bf56ec35b6b2
5
5
  SHA512:
6
- metadata.gz: 0d328883366c5790c5e3fb402b7e38aecddf6bc03190dcd5d50e215205d20b91618a1e9f373be9d477c77604b88b5f755b3c6628c6b07e86e942eda5801b67ec
7
- data.tar.gz: ba62cfb0aaa728537c0f01409a576f9f09a2c6e8a392d224c82e5cdce85c6d0c24f74e0e4575eb3aa17bf392cd133489307ea9b16104f262abb6d5a93fdd3da6
6
+ metadata.gz: 6cfb9858b7365ddd1a54c2a3f3b91e7677dd32b50645a8645afdba8209497fb8f6915b09f73eaac02849ed9358ee800dc4621b3048d8eb1be2881b23fe69e78f
7
+ data.tar.gz: f2a1ba0bcde4a8f372de93a953a47c2a526e69b3d0c755e3de39cdc0ef637d6ae7dd8e75ee2d2a7dfd209101eee74b9b292dc3b3fb4833046049276e867f1229
@@ -21,9 +21,8 @@ module Isomorfeus
21
21
 
22
22
  def self.process_response(response_hash)
23
23
  response_hash[:response][:agent_ids].keys.each do |agent_id|
24
- agent = Isomorfeus::Transport::RequestAgent.get!(agent_id)
25
- Isomorfeus::Transport.unregister_request_in_progress(agent_id)
26
- unless agent.promise.realized?
24
+ agent = Isomorfeus::Transport::RequestAgent.get(agent_id)
25
+ if agent && !agent.promise.realized?
27
26
  agent.full_response = response_hash
28
27
  agent.response = response_hash[:response][:agent_ids][agent_id]
29
28
  agent.promise.resolve(agent)
@@ -10,7 +10,7 @@ module Isomorfeus
10
10
  agents[object_id]
11
11
  end
12
12
 
13
- def get!(object_id)
13
+ def del!(object_id)
14
14
  agents.delete(object_id.to_s)
15
15
  end
16
16
  end
@@ -27,7 +27,17 @@ module Isomorfeus
27
27
  def initialize(request = nil)
28
28
  @id = object_id.to_s
29
29
  self.class.agents[@id] = self
30
+ current_agent = self
30
31
  @promise = Promise.new
32
+ @promise.then do
33
+ Isomorfeus::Transport.unregister_request_in_progress(current_agent.id)
34
+ Isomorfeus::Transport::RequestAgent.del!(current_agent.id)
35
+ end
36
+ @promise.fail do |e|
37
+ STDERR.puts "#{e}"
38
+ Isomorfeus::Transport.unregister_request_in_progress(current_agent.id)
39
+ Isomorfeus::Transport::RequestAgent.del!(current_agent.id)
40
+ end
31
41
  @request = request
32
42
  @sent = false
33
43
  end
@@ -37,6 +47,8 @@ module Isomorfeus
37
47
  self.processed = true
38
48
  Isomorfeus.raise_error(message: self.response[:error]) if self.response.key?(:error)
39
49
  self.result = block.call(self)
50
+ @promise.resolve(self) unless @promise.realized?
51
+ self.result
40
52
  end
41
53
  end
42
54
  end
@@ -9,10 +9,12 @@ module Isomorfeus
9
9
 
10
10
  def on_message(client, data)
11
11
  if Isomorfeus.development?
12
- write_lock = Isomorfeus.zeitwerk_lock.try_write_lock
13
- if write_lock
14
- Isomorfeus.zeitwerk.reload
15
- Isomorfeus.zeitwerk_lock.release_write_lock
12
+ if Isomorfeus.server_requires_reload?
13
+ write_lock = Isomorfeus.zeitwerk_lock.try_write_lock
14
+ if write_lock
15
+ Isomorfeus.zeitwerk.reload
16
+ Isomorfeus.zeitwerk_lock.release_write_lock
17
+ end
16
18
  end
17
19
  Isomorfeus.zeitwerk_lock.acquire_read_lock
18
20
  end
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Transport
3
- VERSION = '2.2.1'
3
+ VERSION = '2.2.4'
4
4
  end
5
5
  end
@@ -9,7 +9,7 @@ module Isomorfeus
9
9
  CLOSING = 2
10
10
  CLOSED = 3
11
11
 
12
- class SendError < StandardError; end
12
+ class SendError < ::StandardError; end
13
13
 
14
14
  def initialize(url, protocols = nil, headers = nil)
15
15
  @url = url
@@ -54,7 +54,7 @@ module Isomorfeus
54
54
  when OPEN then @native_websocket.JS.send(data)
55
55
  when CONNECTING then after(50) { send(data) }
56
56
  when CLOSING then Isomorfeus.raise_error(error_class: SendError, message: 'Cant send, connection is closing!')
57
- when CLOSED then Isomorfeus.raise_error(error_class: SendError.new, message: 'Cant send, connection is closed!')
57
+ when CLOSED then Isomorfeus.raise_error(error_class: SendError, message: 'Cant send, connection is closed!')
58
58
  end
59
59
  end
60
60
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-transport
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-20 00:00:00.000000000 Z
11
+ date: 2022-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -128,28 +128,28 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 10.6.40
131
+ version: 10.6.49
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 10.6.40
138
+ version: 10.6.49
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: isomorfeus-policy
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 2.2.1
145
+ version: 2.2.4
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - '='
151
151
  - !ruby/object:Gem::Version
152
- version: 2.2.1
152
+ version: 2.2.4
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: isomorfeus-redux
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -226,14 +226,14 @@ dependencies:
226
226
  requirements:
227
227
  - - '='
228
228
  - !ruby/object:Gem::Version
229
- version: 2.2.1
229
+ version: 2.2.4
230
230
  type: :development
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
234
  - - '='
235
235
  - !ruby/object:Gem::Version
236
- version: 2.2.1
236
+ version: 2.2.4
237
237
  - !ruby/object:Gem::Dependency
238
238
  name: rake
239
239
  requirement: !ruby/object:Gem::Requirement
@@ -334,7 +334,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
334
334
  - !ruby/object:Gem::Version
335
335
  version: '0'
336
336
  requirements: []
337
- rubygems_version: 3.3.3
337
+ rubygems_version: 3.3.7
338
338
  signing_key:
339
339
  specification_version: 4
340
340
  summary: Channels, authetication and various transport options for Isomorfeus.