Skip to content

Commit d072044

Browse files
author
Paulo Mateus Moura da Silva
committed
Issues zipmark#191 zipmark#402 and zipmark#403: Add example property and remove duplicated parameters (generated by the path parameter search: RspecApiDocumentation::DSL.extract_route_parameters!)
1 parent bb87226 commit d072044

File tree

3 files changed

+8
-13
lines changed

3 files changed

+8
-13
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,8 @@ This [format](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/
359359
360360
* Several new options on `parameter` helper.
361361
362-
- `with_example: true`. This option will adjust your description of the parameter with the passed value.
362+
- `with_example: true`. This option will adjust your example of the parameter with the passed value.
363+
- `example: <value>`. Will provide a example value for the parameter.
363364
- `default: <value>`. Will provide a default value for the parameter.
364365
- `minimum: <integer>`. Will setup upper limit for your parameter.
365366
- `maximum: <integer>`. Will setup lower limit for your parameter.

lib/rspec_api_documentation/open_api/parameter.rb

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,9 @@ class Parameter < Node
1616
add_setting :minimum
1717
add_setting :maximum
1818
add_setting :enum
19-
20-
def description_with_example
21-
str = description_without_example.dup || ''
22-
if with_example && value
23-
str << "\n" unless str.empty?
24-
str << "Eg, `#{value}`"
25-
end
26-
str
27-
end
19+
add_setting :example, :default => lambda { |parameter| parameter.with_example ? parameter.value : nil }
2820

2921
alias_method :description_without_example, :description
30-
alias_method :description, :description_with_example
3122
end
3223
end
3324
end

lib/rspec_api_documentation/writers/open_api_writer.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,10 @@ def extract_schema(fields)
156156
end
157157

158158
def extract_parameters(example)
159-
extract_known_parameters(example.extended_parameters.select { |p| !p[:in].nil? }) +
160-
extract_unknown_parameters(example, example.extended_parameters.select { |p| p[:in].nil? })
159+
parameters = example.extended_parameters.uniq { |parameter| parameter[:name] }
160+
161+
extract_known_parameters(parameters.select { |p| !p[:in].nil? }) +
162+
extract_unknown_parameters(example, parameters.select { |p| p[:in].nil? })
161163
end
162164

163165
def extract_parameter(opts)
@@ -170,6 +172,7 @@ def extract_parameter(opts)
170172
value: opts[:value],
171173
with_example: opts[:with_example],
172174
default: opts[:default],
175+
example: opts[:example],
173176
).tap do |elem|
174177
if elem.type == :array
175178
elem.items = opts[:items] || OpenApi::Helper.extract_items(opts[:value][0], { minimum: opts[:minimum], maximum: opts[:maximum], enum: opts[:enum] })

0 commit comments

Comments
 (0)