lib/snake-eyes/interface_changes.rb in snake-eyes-0.1.0 vs lib/snake-eyes/interface_changes.rb in snake-eyes-1.0.0
- old
+ new
@@ -3,10 +3,24 @@
KEYS_ALWAYS_PRESENT = [
"controller",
"action"
]
+ if Rails::VERSION::MAJOR >= 5
+ def _prepare(transformed_params)
+ # We permit all parameter values so that we many convert it to a hash, to work
+ # with ActionPack 5.2's ActionController::Parameters initializer
+ _transform_params = transformed_params.dup
+ _transform_params.permit!
+ _transform_params.to_h
+ end
+ else
+ def _prepare(transformed_params)
+ transformed_params
+ end
+ end
+
def params(options = {})
validate_options(options)
original_params = super()
@@ -28,13 +42,14 @@
options[:nested_attributes] = nested_schema
return @previous_params[options] if @previous_params[options]
- transformed_params = deep_transform(original_params, options)
+ transformed_params = deep_transform(_prepare(original_params), options)
- @previous_params[options] = @snake_eyes_params = ActionController::Parameters.new(transformed_params)
+ @previous_params[options] =
+ @snake_eyes_params = ActionController::Parameters.new(transformed_params)
log_snakized_params
@snake_eyes_params
end
@@ -47,14 +62,13 @@
end
end
def log_snakized_params
if SnakeEyes.log_snake_eyes_parameters
-
ignored_params = ActionController::LogSubscriber::INTERNAL_PARAMS
filtered_params = request.send(:parameter_filter).filter(@snake_eyes_params.except(*ignored_params))
- logger.info " SnakeEyes Parameters: #{filtered_params.inspect}"
+ logger.info " SnakeEyes Parameters: #{_prepare(filtered_params).inspect}"
end
end
def deep_transform(target, options = {})