class Superintendent::Request::ParamsCaseTranslator
Constants
- DATA_CASE
Public Class Methods
new(app, opts={})
click to toggle source
# File lib/superintendent/request/params_case_translator.rb, line 5 def initialize(app, opts={}) @app, @options = app, opts end
Public Instance Methods
call(env)
click to toggle source
# File lib/superintendent/request/params_case_translator.rb, line 9 def call(env) request = ActionDispatch::Request.new(env) if ['POST', 'PUT', 'PATCH'].include? request.method if env.has_key?(DATA_CASE) && env[DATA_CASE] == 'camel-lower' request.request_parameters = underscored_keys(request.request_parameters) end end @app.call(env) end
Private Instance Methods
underscored_key(k)
click to toggle source
# File lib/superintendent/request/params_case_translator.rb, line 21 def underscored_key(k) k.to_s.underscore end
underscored_keys(value)
click to toggle source
# File lib/superintendent/request/params_case_translator.rb, line 25 def underscored_keys(value) case value when Array value.map { |v| underscored_keys(v) } when Hash Hash[value.map { |k, v| [underscored_key(k), underscored_keys(v)] }] else value end end