Class: Lepus::Consumers::Middlewares::JSON
- Inherits:
-
Middleware
- Object
- Middleware
- Lepus::Consumers::Middlewares::JSON
- Defined in:
- lib/lepus/consumers/middlewares/json.rb
Overview
A middleware that automatically parses your JSON payload.
Instance Method Summary collapse
- #call(message, app) ⇒ Object
-
#initialize(**opts) ⇒ JSON
constructor
A new instance of JSON.
Constructor Details
#initialize(**opts) ⇒ JSON
Returns a new instance of JSON.
13 14 15 16 17 18 |
# File 'lib/lepus/consumers/middlewares/json.rb', line 13 def initialize(**opts) super @on_error = opts.fetch(:on_error, proc { :reject }) @symbolize_keys = opts.fetch(:symbolize_keys, false) end |
Instance Method Details
#call(message, app) ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/lepus/consumers/middlewares/json.rb', line 20 def call(, app) begin parsed_payload = MultiJson.load(.payload, symbolize_keys: symbolize_keys) rescue => e return on_error.call(e) end app.call(.mutate(payload: parsed_payload)) end |