verse-schema 1.2.2 → 1.2.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e9f65d1a4eaf9aaeb7e3b8f90ab66ca98a85527419eede9f1b021dab4014059d
4
- data.tar.gz: e44773ced3d07b0341956c9869af6c824f92d642a19a26dc7509d152d7b7a200
3
+ metadata.gz: fc1411b74fdb3a2658f9dc7d862d0d6398fcaf0a9efe53c2717e8c89253eca72
4
+ data.tar.gz: a3f32541f50ec6d96601f5ba5e8f1c2f6af6c9a9920f7d9858123c697a3fc573
5
5
  SHA512:
6
- metadata.gz: 27adb74663ab3cd9e96184ca08334a6f7d4ca6de69926a7e02bbfc79402bad2e0fcf5fa42a1842f4b30595750387058235bc8054b3b2825a2426f1cc28003173
7
- data.tar.gz: a15ee8de098256af8d35b8392f08293fff3d46cca76c5a0cce9152898749a037c3be69e89d59fe63538982e28592518a2d37ac24214048999188177094ba9cce
6
+ metadata.gz: fe4326766dc6d8f98a23f71d9ba72796b48163c79d2a553c10b2d894c9c36b766094d6c0e1a2e90460e9acf05096b5e85e10100423b7c0c6d1f231c1650f19e4
7
+ data.tar.gz: b657e648bec443775d40818a6d3611883c8ec0b693fdf98d29168b808022b4495bf51ceb470b80dcf199958319b474c685bcc8c2d2358a236785cd8aa3b401e8
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- verse-schema (1.2.1)
4
+ verse-schema (1.2.3)
5
5
  attr_chainable (~> 1.0)
6
6
 
7
7
  GEM
@@ -49,7 +49,7 @@ module Verse
49
49
 
50
50
  obj[field_obj.name] = begin
51
51
  output = _from_schema(field_obj.type, registry:, definitions:)
52
- desc = field_obj.opts.dig(:meta, :description)
52
+ desc = field_obj.opts.dig(:meta, :description) || field_obj.opts.dig(:meta, :desc)
53
53
 
54
54
  output[:description] = desc if desc
55
55
 
@@ -141,7 +141,7 @@ module Verse
141
141
  { type: "string", format: "date-time" }
142
142
  when NilClass.singleton_class, nil
143
143
  { type: "null" }
144
- when Array.singleton_class
144
+ when Array.singleton_class, Set.singleton_class
145
145
  { type: "array" }
146
146
  when Array
147
147
  case schema.length
@@ -152,8 +152,22 @@ module Verse
152
152
  else
153
153
  { anyOf: schema.map { |v| _from_schema(v, registry:, definitions:) } }
154
154
  end
155
+ when Hash.singleton_class
156
+ { type: "object" }
157
+ when IO.singleton_class, Tempfile.singleton_class
158
+ {
159
+ type: "object",
160
+ instanceof: "IO",
161
+ description: "A native IO stream or file pointer"
162
+ }
155
163
  else
156
- raise "Unknown type #{schema.inspect}"
164
+ if schema == Object
165
+ {} # any type
166
+ elsif schema.respond_to?(:to_json_schema)
167
+ schema.to_json_schema # custom schema conversion
168
+ else
169
+ raise "Unknown type #{schema.inspect}"
170
+ end
157
171
  end
158
172
  end
159
173
  # rubocop:enable Metrics/MethodLength, Metrics/CyclomaticComplexity, Lint/HashCompareByIdentity
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Verse
4
4
  module Schema
5
- VERSION = "1.2.2"
5
+ VERSION = "1.2.4"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: verse-schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yacine Petitprez