openapi_parser 0.12.1 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e25413096d326cffe71e82846cc5c95c10c9d453ef7ec2026840cebc9d90ff67
4
- data.tar.gz: e2c3efef0cab1f63e0c4c682802e4a377b711b769ffce3203b47a2313c5da235
3
+ metadata.gz: 9afe7e0164ddcad6c8a8fbb6d57e0514e32df10d014bc642b88fa3473f1f8d74
4
+ data.tar.gz: cefb18a632f4a16dd948fe2e82fadfc0236a159af2406fdcb52db50ef6dc980e
5
5
  SHA512:
6
- metadata.gz: 1ddcd885be5ccfdd2cc74f60731517e9a18617d001abb3c95767905c6629e5fe6925e39cfb2668c81a94696974aab22a6a20f7eb96f403d189f9d3f6957f3fd2
7
- data.tar.gz: b588c5ebfcecb63112c8cbf97bfdacc26bcdfdcea24d38315f20210eeb4b93848ed58dd3c415d8b866363b579f026a5449993932e919005509e6254ea3d3671b
6
+ metadata.gz: fb0397b9251edac7e3bfb15e30041d5945a466c21b6671183eaec8491a372730e2f76101af71efbc7c07c66345353c260983acfb69d80f2b066c35c71207a076
7
+ data.tar.gz: 5a58f4b47946ca9c376dcce3c5be34de998a2bc3d59ee4321e2e7f0425c7cdf6b809ff9eb3a103fe099a849210def6c362431628610fdde137b3b79157a32849
data/.travis.yml CHANGED
@@ -7,9 +7,10 @@ language: ruby
7
7
  rvm:
8
8
  - 2.3.8
9
9
  - 2.4.10
10
- - 2.5.8
11
- - 2.6.6
12
- - 2.7.1
10
+ - 2.5.9
11
+ - 2.6.7
12
+ - 2.7.3
13
+ - 3.0.1
13
14
  - ruby-head
14
15
 
15
16
  cache: bundler
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## Unreleased
2
2
 
3
+ ## 0.13.0 (2021-05-01)
4
+ * Fix a problem with remote reference to path items which have path parameters #95
5
+ * Support enum for booleans. #104
6
+
3
7
  ## 0.12.1 (2020-08-27)
4
8
  * Use CGI.unescape (warning fix) #92
5
9
 
@@ -5,25 +5,26 @@ module OpenAPIParser::Findable
5
5
  # @param [String] reference
6
6
  # @return [OpenAPIParser::Findable]
7
7
  def find_object(reference)
8
- reference = CGI.unescape(reference)
9
8
  return self if object_reference == reference
10
9
  remote_reference = !reference.start_with?('#')
11
10
  return find_remote_object(reference) if remote_reference
12
11
  return nil unless reference.start_with?(object_reference)
13
12
 
13
+ unescaped_reference = CGI.unescape(reference)
14
+
14
15
  @find_object_cache = {} unless defined? @find_object_cache
15
- if (obj = @find_object_cache[reference])
16
+ if (obj = @find_object_cache[unescaped_reference])
16
17
  return obj
17
18
  end
18
19
 
19
- if (child = _openapi_all_child_objects[reference])
20
- @find_object_cache[reference] = child
20
+ if (child = _openapi_all_child_objects[unescaped_reference])
21
+ @find_object_cache[unescaped_reference] = child
21
22
  return child
22
23
  end
23
24
 
24
25
  _openapi_all_child_objects.values.each do |c|
25
- if (obj = c.find_object(reference))
26
- @find_object_cache[reference] = obj
26
+ if (obj = c.find_object(unescaped_reference))
27
+ @find_object_cache[unescaped_reference] = obj
27
28
  return obj
28
29
  end
29
30
  end
@@ -13,7 +13,7 @@ module OpenAPIParser
13
13
  end
14
14
 
15
15
  def message
16
- "#{@reference} expected #{@type}, but received #{@data.class}: #{@data}"
16
+ "#{@reference} expected #{@type}, but received #{@data.class}: #{@data.inspect}"
17
17
  end
18
18
 
19
19
  class << self
@@ -73,7 +73,7 @@ module OpenAPIParser
73
73
  end
74
74
 
75
75
  def message
76
- "discriminator propertyName #{@key} does not exist in value #{@value} in #{@reference}"
76
+ "discriminator propertyName #{@key} does not exist in value #{@value.inspect} in #{@reference}"
77
77
  end
78
78
  end
79
79
 
@@ -84,7 +84,7 @@ module OpenAPIParser
84
84
  end
85
85
 
86
86
  def message
87
- "#{@value} isn't one of in #{@reference}"
87
+ "#{@value.inspect} isn't one of in #{@reference}"
88
88
  end
89
89
  end
90
90
 
@@ -95,7 +95,7 @@ module OpenAPIParser
95
95
  end
96
96
 
97
97
  def message
98
- "#{@value} isn't any of in #{@reference}"
98
+ "#{@value.inspect} isn't any of in #{@reference}"
99
99
  end
100
100
  end
101
101
 
@@ -106,7 +106,7 @@ module OpenAPIParser
106
106
  end
107
107
 
108
108
  def message
109
- "#{@value} isn't include enum in #{@reference}"
109
+ "#{@value.inspect} isn't part of the enum in #{@reference}"
110
110
  end
111
111
  end
112
112
 
@@ -117,7 +117,7 @@ module OpenAPIParser
117
117
  end
118
118
 
119
119
  def message
120
- "#{@reference} #{@value} is less than minimum value"
120
+ "#{@reference} #{@value.inspect} is less than minimum value"
121
121
  end
122
122
  end
123
123
 
@@ -128,7 +128,7 @@ module OpenAPIParser
128
128
  end
129
129
 
130
130
  def message
131
- "#{@reference} #{@value} cannot be less than or equal to exclusive minimum value"
131
+ "#{@reference} #{@value.inspect} cannot be less than or equal to exclusive minimum value"
132
132
  end
133
133
  end
134
134
 
@@ -139,7 +139,7 @@ module OpenAPIParser
139
139
  end
140
140
 
141
141
  def message
142
- "#{@reference} #{@value} is more than maximum value"
142
+ "#{@reference} #{@value.inspect} is more than maximum value"
143
143
  end
144
144
  end
145
145
 
@@ -150,7 +150,7 @@ module OpenAPIParser
150
150
  end
151
151
 
152
152
  def message
153
- "#{@reference} #{@value} cannot be more than or equal to exclusive maximum value"
153
+ "#{@reference} #{@value.inspect} cannot be more than or equal to exclusive maximum value"
154
154
  end
155
155
  end
156
156
 
@@ -163,7 +163,7 @@ module OpenAPIParser
163
163
  end
164
164
 
165
165
  def message
166
- "#{@reference} pattern #{@pattern} does not match value: #{@value}#{@example ? ", example: #{@example}" : ""}"
166
+ "#{@reference} pattern #{@pattern} does not match value: #{@value.inspect}#{@example ? ", example: #{@example}" : ""}"
167
167
  end
168
168
  end
169
169
 
@@ -174,7 +174,7 @@ module OpenAPIParser
174
174
  end
175
175
 
176
176
  def message
177
- "#{@reference} email address format does not match value: #{@value}"
177
+ "#{@reference} email address format does not match value: #{@value.inspect}"
178
178
  end
179
179
  end
180
180
 
@@ -185,7 +185,7 @@ module OpenAPIParser
185
185
  end
186
186
 
187
187
  def message
188
- "#{@reference} Value: #{@value} is not conformant with UUID format"
188
+ "#{@reference} Value: #{@value.inspect} is not conformant with UUID format"
189
189
  end
190
190
  end
191
191
 
@@ -208,7 +208,7 @@ module OpenAPIParser
208
208
  end
209
209
 
210
210
  def message
211
- "#{@reference} #{@value} is longer than max length"
211
+ "#{@reference} #{@value.inspect} is longer than max length"
212
212
  end
213
213
  end
214
214
 
@@ -219,7 +219,7 @@ module OpenAPIParser
219
219
  end
220
220
 
221
221
  def message
222
- "#{@reference} #{@value} is shorter than min length"
222
+ "#{@reference} #{@value.inspect} is shorter than min length"
223
223
  end
224
224
  end
225
225
 
@@ -230,7 +230,7 @@ module OpenAPIParser
230
230
  end
231
231
 
232
232
  def message
233
- "#{@reference} #{@value} contains more than max items"
233
+ "#{@reference} #{@value.inspect} contains more than max items"
234
234
  end
235
235
  end
236
236
 
@@ -241,7 +241,7 @@ module OpenAPIParser
241
241
  end
242
242
 
243
243
  def message
244
- "#{@reference} #{@value} contains fewer than min items"
244
+ "#{@reference} #{@value.inspect} contains fewer than min items"
245
245
  end
246
246
  end
247
247
  end
@@ -136,7 +136,7 @@ class OpenAPIParser::PathItemFinder
136
136
  end
137
137
  end
138
138
 
139
- # find mathing path and extract params
139
+ # find matching path and extract params
140
140
  # EXAMPLE: find_path_and_params('get', '/user/1') => ['/user/{id}', { 'id' => 1 }]
141
141
  def find_path_and_params(http_method, request_path)
142
142
  return [request_path, {}] if matches_directly?(request_path, http_method)
@@ -1,5 +1,7 @@
1
1
  class OpenAPIParser::SchemaValidator
2
2
  class BooleanValidator < Base
3
+ include ::OpenAPIParser::SchemaValidator::Enumable
4
+
3
5
  TRUE_VALUES = ['true', '1'].freeze
4
6
  FALSE_VALUES = ['false', '0'].freeze
5
7
 
@@ -8,6 +10,9 @@ class OpenAPIParser::SchemaValidator
8
10
 
9
11
  return OpenAPIParser::ValidateError.build_error_result(value, schema) unless value.kind_of?(TrueClass) || value.kind_of?(FalseClass)
10
12
 
13
+ value, err = check_enum_include(value, schema)
14
+ return [nil, err] if err
15
+
11
16
  [value, nil]
12
17
  end
13
18
 
@@ -1,3 +1,3 @@
1
1
  module OpenAPIParser
2
- VERSION = '0.12.1'.freeze
2
+ VERSION = '0.13.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openapi_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ota42y
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-27 00:00:00.000000000 Z
11
+ date: 2021-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -207,7 +207,7 @@ homepage: https://github.com/ota42y/openapi_parser
207
207
  licenses:
208
208
  - MIT
209
209
  metadata: {}
210
- post_install_message:
210
+ post_install_message:
211
211
  rdoc_options: []
212
212
  require_paths:
213
213
  - lib
@@ -222,8 +222,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
222
  - !ruby/object:Gem::Version
223
223
  version: '0'
224
224
  requirements: []
225
- rubygems_version: 3.1.2
226
- signing_key:
225
+ rubygems_version: 3.2.3
226
+ signing_key:
227
227
  specification_version: 4
228
228
  summary: OpenAPI3 parser
229
229
  test_files: []