rabbit_messaging 1.4.0 → 1.5.0

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: dd33b8817709c4f36e9ae42150aefbf6b9430ea6a764e9b57328b322ac8a092d
4
- data.tar.gz: 03d3b93e6a05a28376f171921b52858ecbbd2bcf12a25f0e7bf51c53579048ce
3
+ metadata.gz: da5252952f99344a807697e8c3bedd069160a41af4709af9b0120b5d0e486e90
4
+ data.tar.gz: c35f327f41ab3f2d9f358c1ac4d4e3bf688b9c2922da5624d96d61c70f57356c
5
5
  SHA512:
6
- metadata.gz: 190b007690a90b6373a07a7f2f425265dbb2209b9f00fc268e99e3d77493c764671a4979ac3da34981c55fa5370c06d30bfb6f69b4af0dded14d5504cacc599d
7
- data.tar.gz: cd210853510b86ff23022035f8c5e0fa169cc46504288ff15c2d6ffec62069da575e2f4bb6cad6bec0e4ee3fb87d9f2cad9cb00fc936ccd1f887f4ac9271f510
6
+ metadata.gz: b403d0df5c612f549d310bf9170b9ea7046fdbc65afbce868a4c291297f0b8060d4840b6a19fd7808a775f3d52946f7ebe1c79c23ef10133a2e37bc0847d2ad1
7
+ data.tar.gz: b4de5dda09cf5dc34ac46c7f8352aa840e477fddaca799ba80435d4ce4c72f525594075042d639145df0e3f424857c2e149709b6e506080be99c391823cb38c0
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ ## [1.5.0] - 2025-05-19
5
+ ### Added
6
+ - Added ability to split log message into parts
7
+ - Optional `logger_message_size_limit` config for message size limit
8
+
4
9
  ## [1.4.0] - 2025-03-10
5
10
  ### Added
6
11
  - Introduced new configuration attributes for connection reset handling:
data/Gemfile.lock CHANGED
@@ -8,7 +8,7 @@ GIT
8
8
  PATH
9
9
  remote: .
10
10
  specs:
11
- rabbit_messaging (1.4.0)
11
+ rabbit_messaging (1.5.0)
12
12
  bunny (~> 2.0)
13
13
  kicks
14
14
  tainbox
data/README.md CHANGED
@@ -151,6 +151,14 @@ require "rabbit_messaging"
151
151
  ```ruby
152
152
  config.connection_reset_timeout = 0.2
153
153
  ```
154
+
155
+ - `logger_message_size_limit` (`Integer`)
156
+
157
+ Maximum logger message size. Split message to parts if message is more than limit. Default: 9500.
158
+
159
+ ```ruby
160
+ config.logger_message_size_limit = 9500
161
+ ```
154
162
  ---
155
163
 
156
164
  ### Client
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Rabbit
4
+ module Helper
5
+ def self.generate_message(message_part, parts, index)
6
+ if parts == 1
7
+ message_part
8
+ elsif index.zero?
9
+ "#{message_part}..."
10
+ elsif index == parts - 1
11
+ "...#{message_part}"
12
+ else
13
+ "...#{message_part}..."
14
+ end
15
+ end
16
+ end
17
+ end
@@ -66,7 +66,13 @@ module Rabbit
66
66
  message.event, message.confirm_select? ? "confirm" : "no-confirm"
67
67
  ]
68
68
 
69
- @logger.debug "#{metadata.join ' / '}: #{JSON.dump(message.data)}"
69
+ message_parts = JSON.dump(message.data)
70
+ .scan(/.{1,#{Rabbit.config.logger_message_size_limit}}/)
71
+
72
+ message_parts.each_with_index do |message_part, index|
73
+ message = Rabbit::Helper.generate_message(message_part, message_parts.size, index)
74
+ @logger.debug "#{metadata.join ' / '}: #{message}"
75
+ end
70
76
  end
71
77
 
72
78
  def reinitialize_channels_pool
@@ -5,6 +5,7 @@ require "tainbox"
5
5
  require "rabbit"
6
6
  require "rabbit/receiving/queue"
7
7
  require "rabbit/receiving/job"
8
+ require "rabbit/helper"
8
9
 
9
10
  class Rabbit::Receiving::Receive
10
11
  include Tainbox
@@ -21,9 +22,15 @@ class Rabbit::Receiving::Receive
21
22
  end
22
23
 
23
24
  def log!
24
- Rabbit.config.receive_logger.debug(
25
- [message, delivery_info, arguments].join(" / "),
26
- )
25
+ message_parts = message.scan(/.{1,#{Rabbit.config.logger_message_size_limit}}/)
26
+
27
+ message_parts.each_with_index do |message_part, index|
28
+ message = Rabbit::Helper.generate_message(message_part, message_parts.size, index)
29
+
30
+ Rabbit.config.receive_logger.debug(
31
+ [message, delivery_info, arguments].join(" / "),
32
+ )
33
+ end
27
34
  end
28
35
 
29
36
  def process_message
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rabbit
4
- VERSION = "1.4.0"
4
+ VERSION = "1.5.0"
5
5
  end
data/lib/rabbit.rb CHANGED
@@ -33,6 +33,7 @@ module Rabbit
33
33
  attribute :connection_reset_max_retries, Integer, default: 10
34
34
  attribute :connection_reset_timeout, Float, default: 0.2
35
35
  attribute :connection_reset_exceptions, Array, default: [Bunny::ConnectionClosedError]
36
+ attribute :logger_message_size_limit, Integer, default: 9_500
36
37
 
37
38
  attribute :receive_logger, default: lambda {
38
39
  Logger.new(Rabbit.root.join("log", "incoming_rabbit_messages.log"))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rabbit_messaging
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Umbrellio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-04-14 00:00:00.000000000 Z
11
+ date: 2025-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bunny
@@ -77,6 +77,7 @@ files:
77
77
  - lib/rabbit/daemon.rb
78
78
  - lib/rabbit/event_handler.rb
79
79
  - lib/rabbit/extensions/bunny/channel.rb
80
+ - lib/rabbit/helper.rb
80
81
  - lib/rabbit/publishing.rb
81
82
  - lib/rabbit/publishing/channels_pool.rb
82
83
  - lib/rabbit/publishing/job.rb