modern 0.4.3 → 0.4.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: f483d74d2aa71c07344b8ab689d473b52255fe52e93c45116f8f898887989f70
4
- data.tar.gz: 81a87980bb858c2839c779f98364f699c4126a908cd4a6b732812dd749956262
3
+ metadata.gz: 98b75246df0cf5705be087b807c14450b9c91e663729df7d0886ba4428287348
4
+ data.tar.gz: 59c973339a53b0d1d10157132cecbf5f46beb88901af2db6833f59ea19e4d6a3
5
5
  SHA512:
6
- metadata.gz: b168abd8e525ab5f8ab193debbc99b94b61b42eb7dab708825d89be5cb0a804c6b15697036db70619c360cf779c1a95847a956e843adad4ca67bf4c71507b958
7
- data.tar.gz: 0a0407e5e6c50609c8ecf7ae2d791c33a76fe1a0eebeb28ad0515e196a32ab235db4cb70f701f845d9f1b22c478a7443b24f497e3eb2dbbeb446d295c6cf50e2
6
+ metadata.gz: 833d34b65a46ec471edbbc12ce949477bfeef93c80e04f15c53dec67600f60f7c77f7d375ceae70803c4f47a019301e35d4bccaf8adcbdfe69fc197a4f521422
7
+ data.tar.gz: 53c57c0440bdbff95b26267124b95a6da80d75514eaa0bd2840bff93ff010b4152bc8c5c534b6ef4d829c6159adbbbe0d380a0f74278464be478979b3635595f
@@ -83,6 +83,8 @@ module Modern
83
83
 
84
84
  if !registered_type.nil?
85
85
  registered_type
86
+ elsif entry.is_a?(Class) && entry < Dry::Struct
87
+ _struct_ref(entry)
86
88
  elsif entry.is_a?(Dry::Types::Sum::Constrained)
87
89
  if entry.left.type.primitive == NilClass
88
90
  # it's a nullable field
@@ -103,13 +105,13 @@ module Modern
103
105
  # http://dry-rb.org/gems/dry-types/constraints/
104
106
 
105
107
  _build_schema_value(ret, name_to_class, entry.type)
106
- elsif entry.is_a?(Dry::Types::Default)
107
- # this just unwraps the default value
108
+ elsif entry.is_a?(Dry::Types::Default) || entry.is_a?(Dry::Struct::Constructor) || entry.is_a?(Dry::Types::Constructor)
109
+ # this just unwraps the underlying value
108
110
  _build_schema_value(ret, name_to_class, entry.type)
109
111
  elsif entry.is_a?(Dry::Types::Definition)
110
112
  primitive = entry.primitive
111
113
 
112
- if primitive.ancestors.include?(Dry::Struct)
114
+ if primitive < Dry::Struct
113
115
  # TODO: make sure I'm understanding this correctly
114
116
  # It feels weird to have to oneOf a $ref, but I can't figure out a
115
117
  # syntax that doesn't require it.
@@ -120,9 +122,9 @@ module Modern
120
122
  _struct_ref(primitive)
121
123
  ]
122
124
  }
123
- elsif primitive.ancestors.include?(Hash)
125
+ elsif primitive < Hash
124
126
  _build_object_from_schema(ret, name_to_class, entry.member_types)
125
- elsif primitive.ancestors.include?(Array)
127
+ elsif primitive < Array
126
128
  {
127
129
  type: "array",
128
130
  items: _build_schema_value(ret, name_to_class, entry.member)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Modern
4
- VERSION = "0.4.3"
4
+ VERSION = "0.4.4"
5
5
  OPENAPI_VERSION = "3.0.1"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: modern
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ed Ropple
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-06 00:00:00.000000000 Z
11
+ date: 2018-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler