lib/grape/dsl/inside_route.rb in grape-0.10.1 vs lib/grape/dsl/inside_route.rb in grape-0.11.0
- old
+ new
@@ -16,10 +16,11 @@
# options. `:include_parent_namespaces` defaults to true, hence must be set to false if
# you want only to return params declared against the current/target endpoint
def declared(params, options = {}, declared_params = nil)
options[:include_missing] = true unless options.key?(:include_missing)
options[:include_parent_namespaces] = true unless options.key?(:include_parent_namespaces)
+
if declared_params.nil?
declared_params = (!options[:include_parent_namespaces] ? route_setting(:declared_params) :
(route_setting(:saved_declared_params) || [])).flatten(1) || []
end
@@ -30,10 +31,10 @@
if params.is_a? Array
params.map do |param|
declared(param || {}, options, declared_params)
end
else
- declared_params.inject({}) do |hash, key|
+ declared_params.inject(Hashie::Mash.new) do |hash, key|
key = { key => nil } unless key.is_a? Hash
key.each_pair do |parent, children|
output_key = options[:stringify] ? parent.to_s : parent.to_sym