@@ -145,6 +145,7 @@ def draft202012
145145 @draft202012 ||= Schema . new (
146146 Draft202012 ::SCHEMA ,
147147 :base_uri => Draft202012 ::BASE_URI ,
148+ :formats => Draft202012 ::FORMATS ,
148149 :ref_resolver => Draft202012 ::Meta ::SCHEMAS . to_proc ,
149150 :regexp_resolver => 'ecma'
150151 )
@@ -154,6 +155,7 @@ def draft201909
154155 @draft201909 ||= Schema . new (
155156 Draft201909 ::SCHEMA ,
156157 :base_uri => Draft201909 ::BASE_URI ,
158+ :formats => Draft201909 ::FORMATS ,
157159 :ref_resolver => Draft201909 ::Meta ::SCHEMAS . to_proc ,
158160 :regexp_resolver => 'ecma'
159161 )
@@ -164,6 +166,7 @@ def draft7
164166 Draft7 ::SCHEMA ,
165167 :vocabulary => { 'json-schemer://draft7' => true } ,
166168 :base_uri => Draft7 ::BASE_URI ,
169+ :formats => Draft7 ::FORMATS ,
167170 :regexp_resolver => 'ecma'
168171 )
169172 end
@@ -173,6 +176,7 @@ def draft6
173176 Draft6 ::SCHEMA ,
174177 :vocabulary => { 'json-schemer://draft6' => true } ,
175178 :base_uri => Draft6 ::BASE_URI ,
179+ :formats => Draft6 ::FORMATS ,
176180 :regexp_resolver => 'ecma'
177181 )
178182 end
@@ -182,6 +186,7 @@ def draft4
182186 Draft4 ::SCHEMA ,
183187 :vocabulary => { 'json-schemer://draft4' => true } ,
184188 :base_uri => Draft4 ::BASE_URI ,
189+ :formats => Draft4 ::FORMATS ,
185190 :regexp_resolver => 'ecma'
186191 )
187192 end
@@ -190,16 +195,9 @@ def openapi31
190195 @openapi31 ||= Schema . new (
191196 OpenAPI31 ::SCHEMA ,
192197 :base_uri => OpenAPI31 ::BASE_URI ,
198+ :formats => OpenAPI31 ::FORMATS ,
193199 :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'
203201 )
204202 end
205203
@@ -211,17 +209,9 @@ def openapi30
211209 'json-schemer://openapi30' => true
212210 } ,
213211 :base_uri => OpenAPI30 ::BASE_URI ,
212+ :formats => OpenAPI30 ::FORMATS ,
214213 :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'
225215 )
226216 end
227217
0 commit comments