dry-types-json-schema 0.0.3 → 0.0.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: b3c596c245aad8cb72bc10fbe904078ac01c7522d14c135b4a6645a7b7f5c769
4
- data.tar.gz: 5fc2b32368fdcb1135b32fdb7d3db27c2104966ff371f020eea750df08588b4f
3
+ metadata.gz: 67e63d34a8b81578fef86941bd3f448062ddf6357f5ea66751882f424a52bd28
4
+ data.tar.gz: 732938510bbdfa5490421cebfff6de06b57108819bdc0f7f7806f03ad4c8131b
5
5
  SHA512:
6
- metadata.gz: 50ed4c3ca20040b4d88ae5ecf107c6ccfad7ae7242a724f1c3afd9f015f63a7b203966571af8699614881f7848a657d322554bbb541ff48244194662a73c40e1
7
- data.tar.gz: 4810a8578cfecb91df93f66b4a9ad6748db42ef0ebd219c1dfce4eeb52c9fd6992027925579dea2f545b57b38f851eca600ef1eb898ba0a5f114e8d42c14537f
6
+ metadata.gz: a0133a959fe532c4f5c75a5084c674a2e83553af6e6abb6580a1809fba8f5dd15c748640c786f4d22cd04a00303582ddc3ef957b707ec00d17281621bf4e6ad7
7
+ data.tar.gz: 05b90642aa10bce11add57b7591fa466a0102f9c5d62e4fa29b8a2f0a1318908d0a10baf9c36531fadf5584764d740b0beb3a7e21b540be63eb03a4b23f03ba0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dry-types-json-schema (0.0.3)
4
+ dry-types-json-schema (0.0.4)
5
5
  dry-types (~> 1.7.2)
6
6
 
7
7
  GEM
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "dry-types-json-schema"
5
- s.version = "0.0.3"
5
+ s.version = "0.0.4"
6
6
  s.summary = "Generate JSON Schema from dry-types"
7
7
  s.authors = ["elcuervo"]
8
8
  s.licenses = %w[MIT]
@@ -17,7 +17,7 @@ module Dry
17
17
  IDENTITY = ->(v, _) { v }.freeze
18
18
  INSPECT = ->(v, _) { v.inspect }.freeze
19
19
  TO_INTEGER = ->(v, _) { v.to_i }.freeze
20
- TO_ARRAY = ->(v, _) { v.to_a }.freeze
20
+ TO_ARRAY = ->(v, _) { Array(v) }.freeze
21
21
  TO_TYPE = ->(v, _) { CLASS_TO_TYPE.fetch(v.to_s.to_sym) }.freeze
22
22
 
23
23
  # Metadata annotations and allowed types overrides for schema generation.
@@ -161,14 +161,18 @@ module Dry
161
161
 
162
162
  definition.transform_values! { |v| v.call(type, ctx) }
163
163
 
164
- return unless definition.any? && ctx
164
+ return unless definition.any?
165
165
 
166
166
  if (extra = EXTRA_PROPS_FOR_TYPE[type.to_s.to_sym])
167
167
  definition = definition.merge(extra)
168
168
  end
169
169
 
170
- @keys[ctx] ||= {}
171
- @keys[ctx].merge!(definition)
170
+ if ctx.nil?
171
+ @keys.merge!(definition)
172
+ else
173
+ @keys[ctx] ||= {}
174
+ @keys[ctx].merge!(definition)
175
+ end
172
176
  end
173
177
 
174
178
  def visit_intersection(node, opts = EMPTY_HASH)
@@ -16,6 +16,14 @@ describe Dry::Types::JSONSchema do
16
16
  { type: :string, format: :email, title: title }
17
17
  end
18
18
  end
19
+
20
+ it_conforms_definition do
21
+ let(:type) { Dry::Types["string"].enum(*%w[a b]) }
22
+
23
+ let(:definition) do
24
+ { type: :string, enum: %w[a b] }
25
+ end
26
+ end
19
27
  end
20
28
 
21
29
  describe "hash" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-types-json-schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - elcuervo