fleck 2.2.4 → 2.2.6

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: 815c6aedba7e3ab97a3c057f1d35b689f4e33a5015f147975095053feeca49fb
4
- data.tar.gz: 655f4eb33edd3926c23694d407a1ffbecfaf40437a9273c08a26048a4ac73ffd
3
+ metadata.gz: 38242d55501162977b13d22f957d358df01c117cd26644512081070ee489bef6
4
+ data.tar.gz: 1fa896bb5015a4e5831933b042dc28df794f6caf67cd7c062ba512cfdaee89b6
5
5
  SHA512:
6
- metadata.gz: d0696f5d4131e441a32b73fdce0939ed1aa002562f8aa931f58407957890b53a769b59e9537ef6c366b6de2e2a6ec249eb5226cd388d0f0426033e32e31330e3
7
- data.tar.gz: 7fa7d2da95225e18d4a826f62eed4ec23b57621656e8b1d9ad0e8ff21184c9a00da1babdbdb95c076b69e74cb170bcfd2652a0965f0a13f1856341439ff465ab
6
+ metadata.gz: 80a80149a3ef88b4e057eebcaea640d587985d081b2d2c4ea400cd0762fdd831550c0070070b1ebb1a4b90536f919986b0ad47706b9ead59143ecd7ad857a3d4
7
+ data.tar.gz: 1c5baa594b727cf420055c0b038f701f1b1f146b170454def7cfe3dc4be05aed92b3384f1f4b00e99da9f596a5b51dbff9f4a1bc2ea805297fc19193806c72af
data/CHANGELOG.md CHANGED
@@ -6,6 +6,10 @@
6
6
 
7
7
  Below you can see the CHANGELOG of **Fleck** gem by version number.
8
8
 
9
+ #### v2.2.5 (18 September 2026) #####
10
+
11
+ - **FIX** Keep unexpected exception details in server logs without exposing them in automatic 500 responses.
12
+
9
13
  #### v2.2.4 (17 September 2026) #####
10
14
 
11
15
  - **FIX** Return a bad-request response for malformed consumer request JSON with native Oj and
data/lib/fleck/client.rb CHANGED
@@ -36,7 +36,9 @@ module Fleck
36
36
  @exchange = Bunny::Exchange.new(@channel, :direct, 'fleck')
37
37
  @publisher = Bunny::Exchange.new(@connection.create_channel, exchange_type, exchange_name)
38
38
  @reply_queue = @channel.queue("", exclusive: true, auto_delete: true)
39
- @reply_queue.bind(@exchange, routing_key: @reply_queue.name)
39
+ # Bunny recovers server-named queues with new names but their original binding keys.
40
+ @reply_routing_key = @reply_queue.name
41
+ @reply_queue.bind(@exchange, routing_key: @reply_routing_key)
40
42
 
41
43
  handle_returned_messages!
42
44
  @concurrency.times { handle_responses! }
@@ -57,7 +59,7 @@ module Fleck
57
59
  end
58
60
 
59
61
  request = Fleck::Client::Request.new(
60
- self, queue, @reply_queue.name,
62
+ self, queue, @reply_routing_key,
61
63
  action: action,
62
64
  version: version,
63
65
  headers: headers,
@@ -105,7 +105,9 @@ module Fleck
105
105
 
106
106
  def fail_request!(status, message, error)
107
107
  log_error(error)
108
- response.render_error(status, [message, error.inspect])
108
+ errors = [message]
109
+ errors << error.inspect if status < 500
110
+ response.render_error(status, errors)
109
111
  @failed = true
110
112
  end
111
113
  end
@@ -1,4 +1,3 @@
1
-
2
1
  module Fleck
3
2
  module Core
4
3
  class Consumer
@@ -30,6 +29,14 @@ module Fleck
30
29
  @deprecated
31
30
  end
32
31
 
32
+ def reset!
33
+ @status = 200
34
+ @errors = []
35
+ @headers = {}
36
+ @body = nil
37
+ @deprecated = false
38
+ end
39
+
33
40
  def not_found(msg = nil)
34
41
  @status = 404
35
42
  @errors << 'Resource Not Found'
@@ -51,25 +58,25 @@ module Fleck
51
58
 
52
59
  def to_json(filter: false)
53
60
  data = {
54
- "status" => @status,
55
- "errors" => @errors,
56
- "headers" => @headers,
57
- "body" => @body,
58
- "deprecated" => @deprecated
61
+ 'status' => @status,
62
+ 'errors' => @errors,
63
+ 'headers' => @headers,
64
+ 'body' => @body,
65
+ 'deprecated' => @deprecated
59
66
  }
60
67
  data.filter! if filter
61
68
 
62
- return Oj.dump(data, mode: :compat)
63
- rescue => e
69
+ Oj.dump(data, mode: :compat)
70
+ rescue StandardError => e
64
71
  logger.error e.inspect + "\n" + e.backtrace.join("\n")
65
- return Oj.dump({
66
- "status" => 500,
67
- "errors" => ['Internal Server Error', 'Failed to dump the response to JSON']
68
- }, mode: :compat)
72
+ Oj.dump({
73
+ 'status' => 500,
74
+ 'errors' => ['Internal Server Error', 'Failed to dump the response to JSON']
75
+ }, mode: :compat)
69
76
  end
70
77
 
71
78
  def to_s
72
- return "#<#{self.class} #{self.to_json(filter: true)}>"
79
+ "#<#{self.class} #{to_json(filter: true)}>"
73
80
  end
74
81
  end
75
82
  end
@@ -124,7 +124,8 @@ module Fleck
124
124
  end
125
125
  rescue StandardError => e
126
126
  log_error(e)
127
- internal_server_error! error: e.inspect, interrupt: false
127
+ response.reset!
128
+ internal_server_error! interrupt: false
128
129
  ensure
129
130
  send_response!
130
131
  log_request
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.4'
5
+ VERSION = '2.2.6'
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fleck
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.4
4
+ version: 2.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Groza Sergiu