open_api_import 0.7.2 → 0.7.3
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/open_api_import.rb +66 -12
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 671766612734c0e73f75720d08549843c3ebe59545bea07c8c011bcb8301e114
|
4
|
+
data.tar.gz: 1d33903fce9f4a859c69eb1f11f77372943d7367762b1d59480af434f14ed2aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbc17d0852b4fa8140bc642f02ef6636aaa3910349783b8ad08235f6f56ab47bb2b40bd4c87d66e9004917b7d8963d44a03e8c966bc6a53ea61db0ea5ea3c752
|
7
|
+
data.tar.gz: 162ffc86f272c1d94a7e14e68ca61cf18cb93c0a3e71e621bdd0dfb3463c144ec11d757c5fe6613a184247cd066b49ad848e7714b89ae5bccf917559add77197
|
data/lib/open_api_import.rb
CHANGED
@@ -294,8 +294,8 @@ class OpenApiImport
|
|
294
294
|
|
295
295
|
bodies.each do |body|
|
296
296
|
if body.keys.include?(:required) and body[:required].size > 0
|
297
|
-
|
298
|
-
|
297
|
+
data_required += get_required_data(body)
|
298
|
+
output << "# required data: #{data_required.inspect}"
|
299
299
|
end
|
300
300
|
|
301
301
|
if body.keys.include?(:properties) and body[:properties].size > 0
|
@@ -420,7 +420,7 @@ class OpenApiImport
|
|
420
420
|
|
421
421
|
unless data_required.empty?
|
422
422
|
output << "data_required: ["
|
423
|
-
output << ":#{data_required.uniq.join(", :")}"
|
423
|
+
output << ":#{data_required.uniq.join(", :")}".gsub(':{','{')
|
424
424
|
output << "],"
|
425
425
|
end
|
426
426
|
unless data_read_only.empty?
|
@@ -443,17 +443,16 @@ class OpenApiImport
|
|
443
443
|
unless data_examples.empty?
|
444
444
|
unless data_required.empty?
|
445
445
|
reqdata = []
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
end
|
446
|
+
begin
|
447
|
+
data_ex = eval("{#{data_examples[0].join(", ")}}")
|
448
|
+
rescue
|
449
|
+
data_ex = {}
|
451
450
|
end
|
452
|
-
|
451
|
+
reqdata = filter(data_ex, data_required)
|
453
452
|
unless reqdata.empty?
|
454
|
-
|
455
|
-
|
456
|
-
output
|
453
|
+
phsd = pretty_hash_symbolized(reqdata)
|
454
|
+
phsd[0]="data: {"
|
455
|
+
output += phsd
|
457
456
|
end
|
458
457
|
end
|
459
458
|
unless data_read_only.empty? or !data_required.empty?
|
@@ -769,5 +768,60 @@ class OpenApiImport
|
|
769
768
|
end
|
770
769
|
return data_examples_all_of, bodies
|
771
770
|
end
|
771
|
+
|
772
|
+
# Get required data
|
773
|
+
private def get_required_data(body)
|
774
|
+
data_required = []
|
775
|
+
if body.keys.include?(:required) and body[:required].size > 0
|
776
|
+
body[:required].each do |r|
|
777
|
+
data_required << r.to_sym
|
778
|
+
end
|
779
|
+
end
|
780
|
+
data_required.each do |key|
|
781
|
+
if body.key?(:properties) and body[:properties][key].is_a?(Hash) and
|
782
|
+
body[:properties][key].key?(:required) and body[:properties][key][:required].size>0
|
783
|
+
dr = get_required_data(body[:properties][key])
|
784
|
+
dr.each do |k|
|
785
|
+
data_required.push({key => k})
|
786
|
+
end
|
787
|
+
end
|
788
|
+
end
|
789
|
+
return data_required
|
790
|
+
end
|
791
|
+
|
792
|
+
#filter hash
|
793
|
+
private def filter(hash, keys)
|
794
|
+
result = {}
|
795
|
+
keys = [keys] unless keys.is_a?(Array)
|
796
|
+
keys.each do |k|
|
797
|
+
if k.is_a?(Symbol) and hash.key?(k)
|
798
|
+
if hash[k].is_a?(Hash)
|
799
|
+
result[k] = {}
|
800
|
+
else
|
801
|
+
result[k] = hash[k]
|
802
|
+
end
|
803
|
+
elsif k.is_a?(Hash) and hash.key?(k.keys[0])
|
804
|
+
result[k.keys[0]][k.values[0]] = filter(hash[k.keys[0]], k.values[0]).values[0]
|
805
|
+
end
|
806
|
+
end
|
807
|
+
return result
|
808
|
+
end
|
809
|
+
|
810
|
+
#gen pretty hash symbolized
|
811
|
+
private def pretty_hash_symbolized(hash)
|
812
|
+
output = []
|
813
|
+
output << "{"
|
814
|
+
hash.each do |kr,kv|
|
815
|
+
if kv.kind_of?(Hash)
|
816
|
+
restv = pretty_hash_symbolized(kv)
|
817
|
+
restv[0] = "#{kr}: {"
|
818
|
+
output += restv
|
819
|
+
else
|
820
|
+
output << "#{kr}: #{kv.inspect}, "
|
821
|
+
end
|
822
|
+
end
|
823
|
+
output << "},"
|
824
|
+
return output
|
825
|
+
end
|
772
826
|
end
|
773
827
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: open_api_import
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mario Ruiz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-03
|
11
|
+
date: 2019-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oas_parser
|
@@ -56,20 +56,20 @@ dependencies:
|
|
56
56
|
requirements:
|
57
57
|
- - "~>"
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: '1.
|
59
|
+
version: '1.12'
|
60
60
|
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 1.
|
62
|
+
version: 1.12.4
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '1.
|
69
|
+
version: '1.12'
|
70
70
|
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: 1.
|
72
|
+
version: 1.12.4
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: rspec
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|