modern 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
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