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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/open_api_import.rb +66 -12
  3. metadata +6 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d0d8fda18486db9232fa9bc04e944b73da1e6aacdce15c0c7f3da3a7dd49b874
4
- data.tar.gz: 532c30e33b6f9d32e3e432366bf870f7e15df6c455bff3112a59bdbbbef50efa
3
+ metadata.gz: 671766612734c0e73f75720d08549843c3ebe59545bea07c8c011bcb8301e114
4
+ data.tar.gz: 1d33903fce9f4a859c69eb1f11f77372943d7367762b1d59480af434f14ed2aa
5
5
  SHA512:
6
- metadata.gz: 6108beecdf144608c0714e84a0fcd58d849b734c694d8047d9886332b4499888719abd17fe3d72db9a6428f4542b33a8c56db82ab66a3f09291fd0eb50659a66
7
- data.tar.gz: aa9593f00472d40f9e2faa88004289173258a61cca8d197ea99afb1d21d38440ab7ff7015ace1028a8c56d8ee1a9cad0c4a225052c0b23bd3de7571d84f1c2e6
6
+ metadata.gz: cbc17d0852b4fa8140bc642f02ef6636aaa3910349783b8ad08235f6f56ab47bb2b40bd4c87d66e9004917b7d8963d44a03e8c966bc6a53ea61db0ea5ea3c752
7
+ data.tar.gz: 162ffc86f272c1d94a7e14e68ca61cf18cb93c0a3e71e621bdd0dfb3463c144ec11d757c5fe6613a184247cd066b49ad848e7714b89ae5bccf917559add77197
@@ -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
- output << "# required data: #{body[:required].join(", ")}"
298
- data_required += body[:required]
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
- data_examples[0].each do |edata|
447
- data_required.each do |rdata|
448
- if edata.scan(/^#{rdata}:/).size>0 or edata.scan(/:/).size==0
449
- reqdata << edata
450
- end
446
+ begin
447
+ data_ex = eval("{#{data_examples[0].join(", ")}}")
448
+ rescue
449
+ data_ex = {}
451
450
  end
452
- end
451
+ reqdata = filter(data_ex, data_required)
453
452
  unless reqdata.empty?
454
- output << "data: {"
455
- output << reqdata.join(", \n")
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.2
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-21 00:00:00.000000000 Z
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.11'
59
+ version: '1.12'
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 1.11.0
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.11'
69
+ version: '1.12'
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 1.11.0
72
+ version: 1.12.4
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: rspec
75
75
  requirement: !ruby/object:Gem::Requirement