bug_bunny 4.5.0 → 4.5.2
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 +4 -4
- data/CHANGELOG.md +8 -8
- data/lib/bug_bunny/controller.rb +0 -13
- data/lib/bug_bunny/observability.rb +3 -0
- data/lib/bug_bunny/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a0f764a7f2038bc0f25ae3b15ed137eb54d7061674fa5903833f77b226a2484b
|
|
4
|
+
data.tar.gz: 3f8d05f541e050441f6b9a15d6dce28fd4aa545258001bccbfe31ae8106729c9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d0647375c55483c1baade8baaf9d9825d0bb02d164ad2fa0b1967bbf42eeef0355c29795c0a7befa2ed154eee7113e299845f2f798770b03a87ad0b2cd73b92c
|
|
7
|
+
data.tar.gz: 52e78f60fcf5aa0ed55e22c210b223ba27b5681939033ee903c604432ba4a4ffd66a0f4d48aa309c9cd03a6d6afbb7c945a3e0f255065bb61b64949e2e497750
|
data/CHANGELOG.md
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [4.5.
|
|
4
|
-
|
|
5
|
-
### ✨ New Features & DX
|
|
6
|
-
* **Controller Header API:** Se introdujo el método `headers` en `BugBunny::Controller` para permitir una manipulación intuitiva de las cabeceras de respuesta AMQP, siguiendo el patrón familiar de Rails.
|
|
7
|
-
* Ejemplo: `headers['X-Custom'] = 'Value'`.
|
|
8
|
-
* **Observability Refinement:** Finalización de la migración al patrón de observabilidad estándar con nombres de eventos `clase.evento` en todos los componentes.
|
|
3
|
+
## [4.5.2] - 2026-03-30
|
|
9
4
|
|
|
10
|
-
|
|
5
|
+
### 🐛 Bug Fixes
|
|
6
|
+
* **Controller:** Se eliminó el método `headers` introducido en v4.5.0 que pisaba el `attribute :headers` de ActiveModel. Esto causaba que `headers[:action]` fuera `nil` al procesar cualquier mensaje, resultando en `NoMethodError: undefined method 'to_sym' for nil`. Los response headers siguen siendo accesibles via `response_headers`.
|
|
11
7
|
|
|
8
|
+
## [4.5.1] - 2026-03-30
|
|
12
9
|
|
|
13
10
|
### ✨ New Features
|
|
14
11
|
* **Request#params:** Se agregó el atributo `params` al objeto `Request` para enviar query params de forma declarativa, al estilo Faraday. Los params se serializan como query string (`Rack::Utils.build_nested_query`) y viajan en el header AMQP `type`, que es el que usa el consumer para rutear al controlador. La `routing_key` del exchange no se ve afectada.
|
|
12
|
+
* Ejemplo: `client.request('users', method: :get, params: { q: { active: true } })`
|
|
15
13
|
* **Resource.where con params:** `Resource.where` ahora usa internamente `req.params` en lugar de construir la URL manualmente, unificando el comportamiento con el cliente directo.
|
|
14
|
+
* Ejemplo: `RemoteNode.where(q: { status: 'active' })`
|
|
15
|
+
* **Observability — Hash serialization:** `safe_log` ahora serializa valores `Hash` como JSON compacto en el log, en lugar de la representación de Ruby, facilitando el parseo en motores de logs.
|
|
16
16
|
|
|
17
17
|
### 🐛 Bug Fixes
|
|
18
18
|
* **Session#exchange:** El `name` y `type` del exchange se convierten a `String` via `.to_s` antes de pasarlos a Bunny, evitando `NoMethodError: undefined method 'gsub' for an instance of Symbol` al configurar exchanges con Symbols.
|
|
19
19
|
* **Configuration:** Se corrigió el namespace por defecto de controladores de `'Rabbit::Controllers'` a `'BugBunny::Controllers'`.
|
|
20
20
|
|
|
21
|
-
## [4.
|
|
21
|
+
## [4.5.0] - 2026-03-25
|
|
22
22
|
|
|
23
23
|
### 📈 Observability & Standards Final Polish
|
|
24
24
|
* **Event Naming Standardization:** Se unificaron todos los nombres de eventos internos al formato estricto `clase.evento` (ej: `consumer.message_received`, `producer.rpc_waiting`) para una categorización impecable en motores de logs.
|
data/lib/bug_bunny/controller.rb
CHANGED
|
@@ -33,7 +33,6 @@ module BugBunny
|
|
|
33
33
|
attribute :raw_string
|
|
34
34
|
|
|
35
35
|
# @return [Hash] Headers de respuesta que serán enviados de vuelta en RPC.
|
|
36
|
-
# @deprecated Use {#response_headers} instead or the helper {#headers}.
|
|
37
36
|
attr_reader :response_headers
|
|
38
37
|
|
|
39
38
|
# @return [Hash, nil] Respuesta final renderizada.
|
|
@@ -41,18 +40,6 @@ module BugBunny
|
|
|
41
40
|
|
|
42
41
|
# @!endgroup
|
|
43
42
|
|
|
44
|
-
# API de Cabeceras de Respuesta (Estilo Rails)
|
|
45
|
-
# Permite manipular fácilmente los headers AMQP que se enviarán de vuelta al cliente.
|
|
46
|
-
#
|
|
47
|
-
# @example
|
|
48
|
-
# headers['X-Custom-Header'] = 'Value'
|
|
49
|
-
# headers[:content_type] = 'application/pdf'
|
|
50
|
-
#
|
|
51
|
-
# @return [Hash] El Hash de cabeceras de respuesta.
|
|
52
|
-
def headers
|
|
53
|
-
@response_headers
|
|
54
|
-
end
|
|
55
|
-
|
|
56
43
|
|
|
57
44
|
# ==========================================
|
|
58
45
|
# INFRAESTRUCTURA DE FILTROS Y LOGS (HEREDABLES)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'json'
|
|
4
|
+
|
|
3
5
|
module BugBunny
|
|
4
6
|
# @api private
|
|
5
7
|
module Observability
|
|
@@ -21,6 +23,7 @@ module BugBunny
|
|
|
21
23
|
|
|
22
24
|
formatted = case val
|
|
23
25
|
when Numeric then val
|
|
26
|
+
when Hash then val.to_json # Genera JSON compacto analizable
|
|
24
27
|
when String then val.include?(" ") ? val.inspect : val
|
|
25
28
|
else val.to_s.include?(" ") ? val.to_s.inspect : val
|
|
26
29
|
end
|
data/lib/bug_bunny/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bug_bunny
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.5.
|
|
4
|
+
version: 4.5.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- gabix
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-03-
|
|
11
|
+
date: 2026-03-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bunny
|