modern 0.4.4 → 0.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/modern/doc_generator/open_api3/schemas.rb +21 -6
- data/lib/modern/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: acd2d0084d17c885739efdb6c43b4bb92b063fcc97926797096f669f92e5ff62
|
4
|
+
data.tar.gz: 3108fb860bc3d119c66d7f86ec8e200e1c3f5be6abfe2ceeafa62ffc11fdbcf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86f097562f5e6506f5ae6fb49261065d5a05120aafc0dfdcc3c996f7d14007a16eaabe34b753e09cfdef335cc752cd36e7bb6e888a7952c62533bcac6e1897c9
|
7
|
+
data.tar.gz: 82ab10dacaed0357ba80395a1ad0745085925a9cc4d0f010e1f081bedd8ae738710aebdfefb8ffd5a95c65177bb892023d230a4d3e8a9aa8c9d37f64abaea8de
|
@@ -31,12 +31,19 @@ module Modern
|
|
31
31
|
ret = {}
|
32
32
|
name_to_class = {}
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
schema_entries =
|
35
|
+
descriptor.root_schemas.partition do |type_or_structclass|
|
36
|
+
type_or_structclass.is_a?(Class)
|
37
|
+
end
|
38
|
+
|
39
|
+
schema_entries.first.each do |structclass|
|
37
40
|
_build_struct(ret, name_to_class, structclass)
|
38
41
|
end
|
39
42
|
|
43
|
+
schema_entries.last.each do |dt|
|
44
|
+
_build_schema_value(ret, name_to_class, dt)
|
45
|
+
end
|
46
|
+
|
40
47
|
ret
|
41
48
|
end
|
42
49
|
|
@@ -84,11 +91,17 @@ module Modern
|
|
84
91
|
if !registered_type.nil?
|
85
92
|
registered_type
|
86
93
|
elsif entry.is_a?(Class) && entry < Dry::Struct
|
94
|
+
_build_struct(ret, name_to_class, entry)
|
87
95
|
_struct_ref(entry)
|
88
|
-
elsif entry.is_a?(Dry::Types::
|
96
|
+
elsif entry.is_a?(Dry::Types::Array::Member) && entry.options.key?(:member)
|
97
|
+
_build_schema_value(ret, name_to_class, entry.options[:member])
|
98
|
+
elsif entry.is_a?(Dry::Types::Sum)
|
89
99
|
if entry.left.type.primitive == NilClass
|
90
100
|
# it's a nullable field
|
91
101
|
_build_schema_value(ret, name_to_class, entry.right).merge(nullable: true)
|
102
|
+
elsif entry.right.type.primitive == NilClass
|
103
|
+
# it's a backwards nullable field
|
104
|
+
_build_schema_value(ret, name_to_class, entry.left).merge(nullable: true)
|
92
105
|
else
|
93
106
|
{
|
94
107
|
anyOf: _flatten_any_of(
|
@@ -108,6 +121,8 @@ module Modern
|
|
108
121
|
elsif entry.is_a?(Dry::Types::Default) || entry.is_a?(Dry::Struct::Constructor) || entry.is_a?(Dry::Types::Constructor)
|
109
122
|
# this just unwraps the underlying value
|
110
123
|
_build_schema_value(ret, name_to_class, entry.type)
|
124
|
+
elsif entry.is_a?(Dry::Types::Enum)
|
125
|
+
_build_schema_value(ret, name_to_class, entry.type).merge(enum: entry.values)
|
111
126
|
elsif entry.is_a?(Dry::Types::Definition)
|
112
127
|
primitive = entry.primitive
|
113
128
|
|
@@ -122,9 +137,9 @@ module Modern
|
|
122
137
|
_struct_ref(primitive)
|
123
138
|
]
|
124
139
|
}
|
125
|
-
elsif primitive
|
140
|
+
elsif primitive <= Hash
|
126
141
|
_build_object_from_schema(ret, name_to_class, entry.member_types)
|
127
|
-
elsif primitive
|
142
|
+
elsif primitive <= Array
|
128
143
|
{
|
129
144
|
type: "array",
|
130
145
|
items: _build_schema_value(ret, name_to_class, entry.member)
|
data/lib/modern/version.rb
CHANGED
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.
|
4
|
+
version: 0.4.5
|
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-
|
11
|
+
date: 2018-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|