open_api_import 0.7.5 → 0.8.0
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 +56 -10
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 349414f04ac95d62ddc790ed6eb8c78adad89c2eaa3b4f4d406c34c678143680
|
4
|
+
data.tar.gz: 5f443ca0d9f463455937d4a3f3fcb2a230a344d740be6ebeb4031bb09774c0a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a75dc6469b177d39a3e7682ccd7b51ebe61d95ae038f3f0e61e0e99bc7c2444a3002636794f9888d3ef8714b354cc3b7f4360bc8a9bca0d2c66c3a155a1dbb4d
|
7
|
+
data.tar.gz: 944f57ff3070edc0c17c49af937288861f695ff632dfb9e3b08a85edee5e0e1987c6365bbb7c6b3e430935f5212f156f9af5d7a77584c8295d33de7371e2f208
|
data/lib/open_api_import.rb
CHANGED
@@ -217,11 +217,10 @@ class OpenApiImport
|
|
217
217
|
if include_responses && cont.key?(:responses) && cont[:responses].is_a?(Hash)
|
218
218
|
cont[:responses].each do |k, v|
|
219
219
|
response_example = []
|
220
|
-
|
221
220
|
response_example = get_response_examples(v)
|
221
|
+
data_pattern += get_patterns(k, v[:schema]) if v.key?(:schema)
|
222
222
|
v[:description] = v[:description].to_s.gsub("'", %q(\\\'))
|
223
223
|
|
224
|
-
|
225
224
|
if !response_example.empty?
|
226
225
|
responses << "'#{k}': { "
|
227
226
|
responses << "message: '#{v[:description]}', "
|
@@ -325,14 +324,9 @@ class OpenApiImport
|
|
325
324
|
if dpv.keys.include?(:description)
|
326
325
|
description_parameters << "# #{dpk}: (#{dpv[:type]}) #{dpv[:description]}"
|
327
326
|
end
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
data_pattern << "#{dpk}: //"
|
332
|
-
else
|
333
|
-
data_pattern << "#{dpk}: /#{dpv[:pattern].to_s.gsub("\\/", "\/")}/"
|
334
|
-
end
|
335
|
-
end
|
327
|
+
|
328
|
+
data_pattern += get_patterns(dpk,dpv)
|
329
|
+
|
336
330
|
if dpv.keys.include?(:readOnly) and dpv[:readOnly] == true
|
337
331
|
data_read_only << dpk
|
338
332
|
end
|
@@ -795,6 +789,58 @@ class OpenApiImport
|
|
795
789
|
return data_required
|
796
790
|
end
|
797
791
|
|
792
|
+
# Get patterns
|
793
|
+
private def get_patterns(dpk, dpv)
|
794
|
+
data_pattern = []
|
795
|
+
|
796
|
+
if dpv.keys.include?(:pattern)
|
797
|
+
#todo: control better the cases with back slashes
|
798
|
+
if dpv[:pattern].include?('\\/')
|
799
|
+
data_pattern << "#{dpk}: //"
|
800
|
+
else
|
801
|
+
data_pattern << "#{dpk}: /#{dpv[:pattern].to_s.gsub("\\/", "\/")}/"
|
802
|
+
end
|
803
|
+
elsif dpv.key?(:minLength) and dpv.key?(:maxLength)
|
804
|
+
data_pattern << "#{dpk}: :'#{dpv[:minLength]}-#{dpv[:maxLength]}:TN'"
|
805
|
+
elsif dpv.key?(:minLength) and !dpv.key?(:maxLength)
|
806
|
+
data_pattern << "#{dpk}: :'#{dpv[:minLength]}:TN'"
|
807
|
+
elsif !dpv.key?(:minLength) and dpv.key?(:maxLength)
|
808
|
+
data_pattern << "#{dpk}: :'0-#{dpv[:maxLength]}:TN'"
|
809
|
+
elsif dpv.key?(:minimum) and dpv.key?(:maximum) and dpv[:type]=='string'
|
810
|
+
data_pattern << "#{dpk}: :'#{dpv[:minimum]}-#{dpv[:maximum]}:TN'"
|
811
|
+
elsif dpv.key?(:minimum) and dpv.key?(:maximum)
|
812
|
+
data_pattern << "#{dpk}: #{dpv[:minimum]}..#{dpv[:maximum]}"
|
813
|
+
elsif dpv.key?(:minimum) and !dpv.key?(:maximum)
|
814
|
+
if RUBY_VERSION >= '2.6.0'
|
815
|
+
data_pattern << "#{dpk}: #{dpv[:minimum]}.."
|
816
|
+
else
|
817
|
+
data_pattern << "##{dpk}: #{dpv[:minimum]}.. # INFINITE only working on ruby>=2.6.0"
|
818
|
+
end
|
819
|
+
elsif !dpv.key?(:minimum) and dpv.key?(:maximum)
|
820
|
+
data_pattern << "#{dpk}: 0..#{dpv[:maximum]}"
|
821
|
+
elsif dpv.key?(:enum)
|
822
|
+
data_pattern << "#{dpk}: :'#{dpv[:enum].join('|')}'"
|
823
|
+
elsif dpv[:format] == 'date-time'
|
824
|
+
data_pattern << "#{dpk}: DateTime"
|
825
|
+
elsif dpv[:type] == 'boolean'
|
826
|
+
data_pattern << "#{dpk}: Boolean"
|
827
|
+
elsif dpv[:type] == 'array' and dpv.key?(:items) and dpv[:items].is_a?(Hash) and dpv[:items].key?(:enum) and dpv[:items][:enum].is_a?(Array)
|
828
|
+
#{:title=>"Balala", :type=>"array", :items=>{:type=>"string", :enum=>["uno","dos"], :example=>"uno"}}
|
829
|
+
data_pattern << "#{dpk}: [:'#{dpv[:items][:enum].join('|')}']"
|
830
|
+
elsif dpv[:type] == 'array' and dpv.key?(:items) and dpv[:items].is_a?(Hash) and !dpv[:items].key?(:enum) and dpv[:items].key?(:properties)
|
831
|
+
#{:title=>"Balala", :type=>"array", :items=>{title: 'xxxx, properties: {server: {enum:['ibm','msa','pytan']}}}
|
832
|
+
dpv[:items][:properties].each do |dpkk,dpvv|
|
833
|
+
data_pattern += get_patterns(dpkk,dpvv)
|
834
|
+
end
|
835
|
+
elsif dpv[:type] == 'object' and dpv.key?(:properties)
|
836
|
+
dpv[:properties].each do |dpkk,dpvv|
|
837
|
+
data_pattern += get_patterns(dpkk,dpvv)
|
838
|
+
end
|
839
|
+
end
|
840
|
+
return data_pattern
|
841
|
+
|
842
|
+
end
|
843
|
+
|
798
844
|
#filter hash
|
799
845
|
private def filter(hash, keys)
|
800
846
|
result = {}
|
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.
|
4
|
+
version: 0.8.0
|
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-06-
|
11
|
+
date: 2019-06-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oas_parser
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
version: '1.12'
|
60
60
|
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 1.12.
|
62
|
+
version: 1.12.12
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
version: '1.12'
|
70
70
|
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: 1.12.
|
72
|
+
version: 1.12.12
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: rspec
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|