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