Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Fix entity data type identification
The gem `grape-swagger` uses the `type` documentation parameter in order
to identify the entity name. When the type (class) is stringified
`grape-swagger` cannot check for method existance and falls back to
taking the last module as the name.
  • Loading branch information
fotos committed Feb 12, 2019
commit 820f029d9a005eca101616d7358c845eb459fe58
2 changes: 1 addition & 1 deletion lib/grape/dsl/inside_route.rb
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ def should_be_empty_array?(declared_param, passed_children_params)
end

def declared_param_is_array?(declared_param)
route_options_params[declared_param.to_s] && route_options_params[declared_param.to_s][:type] == 'Array'
route_options_params[declared_param.to_s] && route_options_params[declared_param.to_s][:type] <= Array
end

def route_options_params
Expand Down
2 changes: 1 addition & 1 deletion lib/grape/validations/params_scope.rb
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ def validates(attrs, validations)

coerce_type = infer_coercion(validations)

doc_attrs[:type] = coerce_type.to_s if coerce_type
doc_attrs[:type] = coerce_type if coerce_type

desc = validations.delete(:desc) || validations.delete(:description)
doc_attrs[:desc] = desc if desc
Expand Down
6 changes: 3 additions & 3 deletions spec/grape/api_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2795,10 +2795,10 @@ def static
subject.get 'method'

expect(subject.routes.map(&:params)).to eq [{
'group1' => { required: true, type: 'Array' },
'group1' => { required: true, type: Array },
'group1[param1]' => { required: false, desc: 'group1 param1 desc' },
'group1[param2]' => { required: true, desc: 'group1 param2 desc' },
'group2' => { required: true, type: 'Array' },
'group2' => { required: true, type: Array },
'group2[param1]' => { required: false, desc: 'group2 param1 desc' },
'group2[param2]' => { required: true, desc: 'group2 param2 desc' }
}]
Expand All @@ -2818,7 +2818,7 @@ def static
{ description: 'nesting',
params: {
'root_param' => { required: true, desc: 'root param' },
'nested' => { required: true, type: 'Array' },
'nested' => { required: true, type: Array },
'nested[nested_param]' => { required: true, desc: 'nested param' }
} }
]
Expand Down