nats_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: 173adfe7dc254c451bc1528849cca140ab2e58fe8b70fc401e2cc99c63129291
4
- data.tar.gz: 319351fff7b6f01eca2f7749be32f4aaef3f85578b090665ac5cca9e8baebac7
3
+ metadata.gz: adcdad1e205d9220e1cd8619ea96c75f1b10e6a022eb3fc69cd690fa40dac0d9
4
+ data.tar.gz: b78794d6d8412cf3ecc5a875f59c51f452fed0f575463d749ae33990bc4ad505
5
5
  SHA512:
6
- metadata.gz: 44357756fdd1b5c61862f7f709a067cf7101f65bdc06ed8d46a480a7db5b8ff8685eb91b2c58cfb53aeba8eceaa3c08c661bd84e128e5873840ad70bea647af8
7
- data.tar.gz: e0f968253ef4467574ef4ea607b36ee0b0fbe39c64a39b0807718fb4e564624dcb7edcbd4c0c340bc931d39300a570bcd89801145032350b47627fa766761ca0
6
+ metadata.gz: 98eda0194ecdac08dbf00c3becfaa4b74c67dbce5ee7e8cf723d04d0e693e8abe8299cec2a6bca8257bb801089c253f0581fd43de9eb4080793e5006230407de
7
+ data.tar.gz: d52a4e95452387d1c4e65e378c52dd677d2e914b01f1cb896f7184450446f3771939003ade627a2def47ff0d4eef960748afe0f758741e04167072bd18ea3eb5
@@ -57,20 +57,30 @@ module NatsMessaging
57
57
  end
58
58
  end
59
59
 
60
+ def make_data_indifferent(data)
61
+ if data.is_a?(Hash)
62
+ data.with_indifferent_access
63
+ else
64
+ data
65
+ end
66
+ end
67
+
60
68
  # Subscribe to a subject using MessagePack
61
69
  def subscribe_to_subject(subject, durable_name = "durable_name")
62
70
  Rails.logger.info "NATS: Subscribing to #{subject}"
63
71
  if @js
64
72
  @subscriptions[subject] = @js.subscribe(subject, durable: durable_name) do |msg|
65
73
  unpacked_data = process_received_message(msg, subject)
66
- yield(msg.subject, unpacked_data) if block_given?
67
- unpacked_data
74
+ indifferent_unpacked_data = make_data_indifferent(unpacked_data)
75
+ yield(msg.subject, indifferent_unpacked_data) if block_given?
76
+ indifferent_unpacked_data
68
77
  end
69
78
  else
70
79
  @subscriptions[subject] = @nats.subscribe(subject) do |msg|
71
80
  unpacked_data = process_received_message(msg, subject)
72
- yield(msg.subject, unpacked_data) if block_given?
73
- unpacked_data
81
+ indifferent_unpacked_data = make_data_indifferent(unpacked_data)
82
+ yield(msg.subject, indifferent_unpacked_data) if block_given?
83
+ indifferent_unpacked_data
74
84
  end
75
85
  end
76
86
  end
@@ -96,8 +106,9 @@ module NatsMessaging
96
106
  response = @nats.request(subject, packed_message, timeout: timeout) # Timeout of 5 seconds or custom
97
107
  unpacked_response = MessagePack.unpack(response.data) # Deserializar respuesta
98
108
  log_duration(start_time, "Received reply: %s", unpacked_response.inspect)
99
- yield(subject, unpacked_response) if block_given?
100
- unpacked_response
109
+ indifferent_unpacked_data = make_data_indifferent(unpacked_response)
110
+ yield(subject, indifferent_unpacked_data) if block_given?
111
+ indifferent_unpacked_data
101
112
  rescue NATS::IO::Timeout
102
113
  log_duration(start_time, "Request timed out for subject: %s", subject)
103
114
  nil
@@ -122,7 +133,8 @@ module NatsMessaging
122
133
  start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC)
123
134
  unpacked_data = MessagePack.unpack(msg.data) # Deserializar mensaje recibido
124
135
  Rails.logger.info "NATS: Received request on #{subject}: #{unpacked_data}"
125
- yield_return = yield(subject, unpacked_data) if block_given?
136
+ indifferent_unpacked_data = make_data_indifferent(unpacked_data)
137
+ yield_return = yield(subject, indifferent_unpacked_data) if block_given?
126
138
  reply = reply_message.nil? ? yield_return : reply_message
127
139
  packed_reply = reply.to_msgpack # Serializar respuesta
128
140
  # Asegurar que msg.reply existe antes de responder
@@ -132,7 +144,7 @@ module NatsMessaging
132
144
  else
133
145
  log_duration(start_time, "No reply subject for %s, cannot respond", subject)
134
146
  end
135
- unpacked_data
147
+ indifferent_unpacked_data
136
148
  rescue => e
137
149
  log_duration(start_time, "Error while processing message on %s: %s", subject, e.message)
138
150
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nats_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
  - Bea Graboloza
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-07-11 00:00:00.000000000 Z
11
+ date: 2026-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nats-pure
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.4'
19
+ version: '2.5'
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: '2.4'
26
+ version: '2.5'
27
27
  description: A service to send and receive messages on a Rails application using NATS
28
28
  email: beatriz.graboloza@bpo-advisors.net
29
29
  executables: []