@@ -145,6 +145,7 @@ def draft202012
145
145
@draft202012 ||= Schema . new (
146
146
Draft202012 ::SCHEMA ,
147
147
:base_uri => Draft202012 ::BASE_URI ,
148
+ :formats => Draft202012 ::FORMATS ,
148
149
:ref_resolver => Draft202012 ::Meta ::SCHEMAS . to_proc ,
149
150
:regexp_resolver => 'ecma'
150
151
)
@@ -154,6 +155,7 @@ def draft201909
154
155
@draft201909 ||= Schema . new (
155
156
Draft201909 ::SCHEMA ,
156
157
:base_uri => Draft201909 ::BASE_URI ,
158
+ :formats => Draft201909 ::FORMATS ,
157
159
:ref_resolver => Draft201909 ::Meta ::SCHEMAS . to_proc ,
158
160
:regexp_resolver => 'ecma'
159
161
)
@@ -164,6 +166,7 @@ def draft7
164
166
Draft7 ::SCHEMA ,
165
167
:vocabulary => { 'json-schemer://draft7' => true } ,
166
168
:base_uri => Draft7 ::BASE_URI ,
169
+ :formats => Draft7 ::FORMATS ,
167
170
:regexp_resolver => 'ecma'
168
171
)
169
172
end
@@ -173,6 +176,7 @@ def draft6
173
176
Draft6 ::SCHEMA ,
174
177
:vocabulary => { 'json-schemer://draft6' => true } ,
175
178
:base_uri => Draft6 ::BASE_URI ,
179
+ :formats => Draft6 ::FORMATS ,
176
180
:regexp_resolver => 'ecma'
177
181
)
178
182
end
@@ -182,6 +186,7 @@ def draft4
182
186
Draft4 ::SCHEMA ,
183
187
:vocabulary => { 'json-schemer://draft4' => true } ,
184
188
:base_uri => Draft4 ::BASE_URI ,
189
+ :formats => Draft4 ::FORMATS ,
185
190
:regexp_resolver => 'ecma'
186
191
)
187
192
end
@@ -190,16 +195,9 @@ def openapi31
190
195
@openapi31 ||= Schema . new (
191
196
OpenAPI31 ::SCHEMA ,
192
197
:base_uri => OpenAPI31 ::BASE_URI ,
198
+ :formats => OpenAPI31 ::FORMATS ,
193
199
:ref_resolver => OpenAPI31 ::Meta ::SCHEMAS . to_proc ,
194
- :regexp_resolver => 'ecma' ,
195
- # https://spec.openapis.org/oas/latest.html#data-types
196
- :formats => {
197
- 'int32' => proc { |instance , _value | instance . is_a? ( Integer ) && instance . bit_length <= 32 } ,
198
- 'int64' => proc { |instance , _value | instance . is_a? ( Integer ) && instance . bit_length <= 64 } ,
199
- 'float' => proc { |instance , _value | instance . is_a? ( Float ) } ,
200
- 'double' => proc { |instance , _value | instance . is_a? ( Float ) } ,
201
- 'password' => proc { |_instance , _value | true }
202
- }
200
+ :regexp_resolver => 'ecma'
203
201
)
204
202
end
205
203
@@ -211,17 +209,9 @@ def openapi30
211
209
'json-schemer://openapi30' => true
212
210
} ,
213
211
:base_uri => OpenAPI30 ::BASE_URI ,
212
+ :formats => OpenAPI30 ::FORMATS ,
214
213
:ref_resolver => OpenAPI30 ::Meta ::SCHEMAS . to_proc ,
215
- :regexp_resolver => 'ecma' ,
216
- :formats => {
217
- 'int32' => proc { |instance , _value | instance . is_a? ( Integer ) && instance . bit_length <= 32 } ,
218
- 'int64' => proc { |instance , _value | instance . is_a? ( Integer ) && instance . bit_length <= 64 } ,
219
- 'float' => proc { |instance , _value | instance . is_a? ( Float ) } ,
220
- 'double' => proc { |instance , _value | instance . is_a? ( Float ) } ,
221
- 'byte' => proc { |instance , _value | Format . decode_content_encoding ( instance , 'base64' ) . first } ,
222
- 'binary' => proc { |instance , _value | instance . is_a? ( String ) && instance . encoding == Encoding ::ASCII_8BIT } ,
223
- 'password' => proc { |_instance , _value | true }
224
- }
214
+ :regexp_resolver => 'ecma'
225
215
)
226
216
end
227
217
0 commit comments