Class: BugBunny::Middleware::Base Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/bug_bunny/middleware/base.rb

Overview

This class is abstract.

Subclase y anula #on_request o #on_complete para inyectar lógica.

Clase base para todos los middlewares de BugBunny.

Implementa el patrón “Template Method” para estandarizar el flujo de ejecución de la cadena de responsabilidades (Ida y Vuelta).

Las subclases deben implementar:

  • #on_request para modificar la petición antes de enviarla.

  • #on_complete para modificar la respuesta después de recibirla.

Direct Known Subclasses

JsonResponse, RaiseError

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ Base

Inicializa el middleware.

Parameters:

  • app (Object)

    El siguiente eslabón de la cadena.



23
24
25
# File 'lib/bug_bunny/middleware/base.rb', line 23

def initialize(app)
  @app = app
end

Instance Attribute Details

#appObject (readonly)

Returns El siguiente middleware en la pila o el adaptador final.

Returns:

  • (Object)

    El siguiente middleware en la pila o el adaptador final.



18
19
20
# File 'lib/bug_bunny/middleware/base.rb', line 18

def app
  @app
end

Instance Method Details

#call(env) ⇒ Hash

Ejecuta el middleware orquestando los hooks de ciclo de vida.

  1. Llama a #on_request (Ida).

  2. Llama al siguiente eslabón (‘@app.call`).

  3. Llama a #on_complete (Vuelta).

Parameters:

Returns:

  • (Hash)

    La respuesta final procesada.



35
36
37
38
39
40
41
42
43
# File 'lib/bug_bunny/middleware/base.rb', line 35

def call(env)
  on_request(env) if respond_to?(:on_request)

  response = @app.call(env)

  on_complete(response) if respond_to?(:on_complete)

  response
end