swagger-diff 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|