fleck 2.2.2 → 2.2.3

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: 0d362b6a20a242296ef0697d57c31503067df64d05b3cee439f58449a7dbe732
4
- data.tar.gz: 76f4a6b22cdfdff8a9826702073eae8866751e4c5446c1d7fdd1aaecd6341655
3
+ metadata.gz: 12549351b1fbd3d7cc3aac011b2949ed7c75d45cc00627ebce98ba87e5ffc3fd
4
+ data.tar.gz: d1c254ae75c7510c6d0436a4b10610e0002478d4405c5a80034583f5b04a8b4f
5
5
  SHA512:
6
- metadata.gz: 794a481e65666fa6ac3be6bd7014d0a20a54819849f2be83402950778de70d24728d3bd283a1fb71332504acb501fe7323e315dbcf9f20f4fe8c229e74120611
7
- data.tar.gz: 42c5b8f0dd478e595d47bde2250a5d01d4b81414ad9670288a1098bb6f7168b71949a8401e848b3f6d2e4d163d23babb70259695ccaa7314fad962b9084a0b1f
6
+ metadata.gz: 3b94e6339c1aa8151c94d473eac81c918d67e2da6c805d20725a62f044bccc41c6456dd34c3e0fa16c6559c66d208196f9ae7423ed527ad891f953edccd1f6cf
7
+ data.tar.gz: 531c4ef36f289ab36dc796f24ec26a81de57bab049a9d4349372226416bcdb45b5e856d85ac528abbdf1e422351d1bbcddee24359065d61e72379fbf2975a122
data/lib/fleck/client.rb CHANGED
@@ -3,7 +3,21 @@ module Fleck
3
3
  class Client
4
4
  include Fleck::Loggable
5
5
 
6
- attr_reader :local_ip, :remote_ip
6
+ @instances = ThreadSafe::Array.new
7
+
8
+ def self.<<(new_instance)
9
+ @instances << new_instance
10
+ end
11
+
12
+ def self.remove_instance(instance)
13
+ @instances.delete(instance)
14
+ end
15
+
16
+ def self.terminate_all
17
+ @instances.map(&:terminate)
18
+ end
19
+
20
+ attr_reader :local_ip, :remote_ip, :terminated
7
21
 
8
22
  def initialize(connection, queue_name = "", exchange_type: :direct, exchange_name: "", multiple_responses: false, concurrency: 1)
9
23
  @connection = connection
@@ -29,9 +43,11 @@ module Fleck
29
43
 
30
44
  logger.debug("Client initialized!")
31
45
 
32
- at_exit do
33
- terminate
34
- end
46
+ Fleck::Client << self
47
+
48
+ # at_exit do
49
+ # terminate
50
+ # end
35
51
  end
36
52
 
37
53
  def request(action: nil, version: nil, headers: {}, params: {}, async: @multiple_responses || false, timeout: @default_timeout, queue: @queue_name, rmq_options: {}, &block)
@@ -73,7 +89,8 @@ module Fleck
73
89
  def terminate
74
90
  @terminated = true
75
91
  logger.info "Unsubscribing from #{@reply_queue.name}"
76
- @subscriptions.map(&:cancel) # stop receiving new messages
92
+ # @subscriptions.map(&:cancel) # stop receiving new messages
93
+ @channel&.close unless @channel&.closed?
77
94
  logger.info "Canceling pending requests"
78
95
  # cancel pending requests
79
96
  while item = @requests.shift do
@@ -83,6 +100,8 @@ module Fleck
83
100
  logger.error e.inspect + "\n" + e.backtrace.join("\n")
84
101
  end
85
102
  end
103
+
104
+ Fleck::Client.remove_instance(self)
86
105
  end
87
106
 
88
107
 
@@ -120,5 +139,9 @@ module Fleck
120
139
  end
121
140
  end
122
141
 
123
- require "fleck/client/request"
124
- require "fleck/client/response"
142
+ at_exit do
143
+ Fleck::Client.terminate_all
144
+ end
145
+
146
+ require 'fleck/client/request'
147
+ require 'fleck/client/response'
data/lib/fleck/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Open `Fleck` module to set `VERSION` constant.
4
4
  module Fleck
5
- VERSION = '2.2.2'
5
+ VERSION = '2.2.3'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fleck
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Groza Sergiu
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-13 00:00:00.000000000 Z
11
+ date: 2023-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler