modern 0.4.4 → 0.4.5
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 +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
|