swagger-diff 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -1
- data/lib/swagger/diff/specification.rb +20 -13
- data/lib/swagger/diff/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 114437451eebd07149d24f784a5f40685bc66db6
|
4
|
+
data.tar.gz: ca0e1c64220b868549c378aa9114c56053d602c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 70588382bc65dc6e55de998a3c8097f928784a80adb263b55dabcefb8cc9d932c1adf1ca0a83e924c0fd58fd6d1d1685bdf9befadcc425e50a1bb6e7ad959ecc
|
7
|
+
data.tar.gz: 5dde2c6cbdcec5b07febb27d290cb312318ce2ece012087a3a78a820d14500d0741b953f942fa0d56b1a0aafe8d1d278d3b979b6c5117fbb3a0a2a4ac59b091b
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,13 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [1.1.2] - 2017-09-13
|
9
|
+
|
10
|
+
### Fixed
|
11
|
+
|
12
|
+
* [#56](https://github.com/civisanalytics/swagger-diff/pull/56)
|
13
|
+
recursively parse non-ref response schemas (`properties` and `items`)
|
14
|
+
|
8
15
|
## [1.1.1] - 2017-08-23
|
9
16
|
|
10
17
|
### Added
|
@@ -97,7 +104,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
97
104
|
|
98
105
|
* Initial Release
|
99
106
|
|
100
|
-
[Unreleased]: https://github.com/civisanalytics/swagger-diff/compare/v1.1.
|
107
|
+
[Unreleased]: https://github.com/civisanalytics/swagger-diff/compare/v1.1.2...HEAD
|
108
|
+
[1.1.2]: https://github.com/civisanalytics/swagger-diff/compare/v1.1.1...v1.1.2
|
101
109
|
[1.1.1]: https://github.com/civisanalytics/swagger-diff/compare/v1.1.0...v1.1.1
|
102
110
|
[1.1.0]: https://github.com/civisanalytics/swagger-diff/compare/v1.0.5...v1.1.0
|
103
111
|
[1.0.5]: https://github.com/civisanalytics/swagger-diff/compare/v1.0.4...v1.0.5
|
@@ -172,19 +172,28 @@ module Swagger
|
|
172
172
|
properties_for_ref(prefix, definition['name'], definition, required)
|
173
173
|
end
|
174
174
|
|
175
|
-
|
175
|
+
# rubocop:disable Metrics/ParameterLists
|
176
|
+
def add_property(ret, prefix, name, schema, required, list)
|
176
177
|
key = "#{prefix}#{name}"
|
178
|
+
ret[:required].add(key) if required && required.include?(name)
|
179
|
+
loc = if schema['in']
|
180
|
+
schema['in']
|
181
|
+
else
|
182
|
+
'body'
|
183
|
+
end
|
184
|
+
ret[:all].add("#{key} (in: #{loc}, type: #{schema['type']}#{'[]' if list})")
|
185
|
+
end
|
186
|
+
# rubocop:enable Metrics/ParameterLists
|
187
|
+
|
188
|
+
def properties_for_ref(prefix, name, schema, required, list = false)
|
177
189
|
ret = { required: Set.new, all: Set.new }
|
178
|
-
if schema
|
190
|
+
if schema['$ref']
|
179
191
|
merge_refs!(ret, nested(schema['$ref'], prefix, name, list))
|
192
|
+
elsif schema['properties']
|
193
|
+
prefix = "#{name}#{'[]' if list}/"
|
194
|
+
merge_refs!(ret, properties(schema['properties'], schema['required'], prefix))
|
180
195
|
else
|
181
|
-
ret
|
182
|
-
loc = if schema['in']
|
183
|
-
schema['in']
|
184
|
-
else
|
185
|
-
'body'
|
186
|
-
end
|
187
|
-
ret[:all].add("#{key} (in: #{loc}, type: #{schema['type']}#{'[]' if list})")
|
196
|
+
add_property(ret, prefix, name, schema, required, list)
|
188
197
|
end
|
189
198
|
ret
|
190
199
|
end
|
@@ -211,16 +220,15 @@ module Swagger
|
|
211
220
|
"#{key} (in: body, type: Hash[string, #{type}])"
|
212
221
|
end
|
213
222
|
|
214
|
-
# rubocop:disable Metrics/CyclomaticComplexity
|
215
223
|
def properties(properties, required, prefix = '')
|
216
224
|
ret = { required: Set.new, all: Set.new }
|
217
225
|
properties.each do |name, schema|
|
218
226
|
if schema['type'] == 'array'
|
219
227
|
merge_refs!(ret, properties_for_ref(prefix, name, schema['items'], required, true))
|
220
|
-
elsif schema['type'] == 'object'
|
228
|
+
elsif schema['type'] == 'object' || schema['properties']
|
221
229
|
if schema['allOf']
|
222
230
|
# TODO: handle nested allOfs.
|
223
|
-
elsif schema['
|
231
|
+
elsif schema['properties']
|
224
232
|
merge_refs!(ret, properties(schema['properties'], required, "#{prefix}#{name}/"))
|
225
233
|
else
|
226
234
|
ret[:all].add(hash_property(schema, prefix, name))
|
@@ -231,7 +239,6 @@ module Swagger
|
|
231
239
|
end
|
232
240
|
ret
|
233
241
|
end
|
234
|
-
# rubocop:enable Metrics/CyclomaticComplexity
|
235
242
|
|
236
243
|
def request_params_inner(params)
|
237
244
|
ret = { required: Set.new, all: Set.new }
|
data/lib/swagger/diff/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swagger-diff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Cousens
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-09-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json-schema
|
@@ -193,7 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
193
|
version: '0'
|
194
194
|
requirements: []
|
195
195
|
rubyforge_project:
|
196
|
-
rubygems_version: 2.6.
|
196
|
+
rubygems_version: 2.6.13
|
197
197
|
signing_key:
|
198
198
|
specification_version: 4
|
199
199
|
summary: Utility for comparing two OAI (fka Swagger) specifications.
|