Class: JsonKeyTransformerMiddleware::IncomingJsonFormatter
- Inherits:
-
Middleware
- Object
- Middleware
- JsonKeyTransformerMiddleware::IncomingJsonFormatter
- Defined in:
- lib/json_key_transformer_middleware/incoming_json_formatter.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ IncomingJsonFormatter
constructor
A new instance of IncomingJsonFormatter.
Methods inherited from Middleware
#camel_to_underscore, #deep_transform_hash_keys, #underscore_to_camel
Constructor Details
#initialize(app) ⇒ IncomingJsonFormatter
Returns a new instance of IncomingJsonFormatter.
7 8 9 |
# File 'lib/json_key_transformer_middleware/incoming_json_formatter.rb', line 7 def initialize(app) @app = app end |
Instance Method Details
#call(env) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/json_key_transformer_middleware/incoming_json_formatter.rb', line 11 def call(env) result = Oj.dump( deep_transform_hash_keys( Oj.load(env['rack.input'].read), :camel_to_underscore)) env['rack.input'] = StringIO.new(result) # Rails uses this elsewhere to parse 'rack.input', it must be updated to avoid truncation env['CONTENT_LENGTH'] = result.length.to_s @app.call(env) end |