open_api_import 0.10.9 → 0.10.11

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 +21 -18
  3. metadata +25 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4e1707e266a2104ec005d5c7d5081ffd51c9a012bf1bc6320403377c934998d3
4
- data.tar.gz: 1babbe0d881bd6f1823935cf6d66447cfa8f5a91df4106e9d87f1ac0fe792aac
3
+ metadata.gz: 7ff3ff403e355b1f422b8d005c1302c2c22f77507d2c1785fe5446050e044096
4
+ data.tar.gz: 5f2c733cac57f1db5e88504e3aba1db7b61241378ecdb89d7ed68e1012e95012
5
5
  SHA512:
6
- metadata.gz: efb801027685d7156f499f110028ffae75fac89032598bc447d2b1c6e1f4acd7fe61905a509e3d6faa4d5d74348257faa98adc3c69d6c1e90f5719a55b1dfac7
7
- data.tar.gz: 7bf47753113ba141a5e7798f40caa958f27534082484286d483d03fbcf8a1f6881c4ddb3cb1111154790a21bcee77eecfbc366e2af8b75ae261507985f3c3dd4
6
+ metadata.gz: 583ae4003d2bb422e87cd0502b4f0cd317ffbb0919c1113d44d8173546dee5afdb32a0e8b62b1bea89aa18a713c4b8fb2a6299a90ed2de233c9d1890aeffcdd5
7
+ data.tar.gz: f392b2a77e39447efec45dca83a13deb22d2561e96432487a7bf25861b95d9e059006311fd316fa6e989de22b66c6d3c981e6d0c80b60cca9618b75364ded7f0
@@ -218,7 +218,7 @@ class OpenApiImport
218
218
 
219
219
  output << ""
220
220
  output << "# operationId: #{cont[:operationId]}, method: #{met}"
221
- output << "# summary: #{cont[:summary]}"
221
+ output << "# summary: #{cont[:summary]}"
222
222
  if !cont[:description].to_s.split("\n").empty?
223
223
  output << "# description: "
224
224
  cont[:description].to_s.split("\n").each do |d|
@@ -238,14 +238,12 @@ class OpenApiImport
238
238
  data_pattern += get_patterns('', v[:schema]) if v.key?(:schema)
239
239
  data_pattern.uniq!
240
240
  v[:description] = v[:description].to_s.gsub("'", %q(\\\'))
241
-
242
241
  if !response_example.empty?
243
242
  responses << "'#{k}': { "
244
243
  responses << "message: '#{v[:description]}', "
245
244
  responses << "data: "
246
245
  responses << response_example
247
- responses << "},"
248
-
246
+ responses << "},"
249
247
  if mock_response and mock_example.size==0
250
248
  mock_example << "code: '#{k}',"
251
249
  mock_example << "message: '#{v[:description]}',"
@@ -254,9 +252,8 @@ class OpenApiImport
254
252
  end
255
253
 
256
254
  else
257
- responses << "'#{k}': { message: '#{v[:description]}'}, "
255
+ responses << "'#{k}': { message: '#{v[:description]}'}, "
258
256
  end
259
-
260
257
  end
261
258
  end
262
259
  # todo: for open api 3.0 add the new Link feature: https://swagger.io/docs/specification/links/
@@ -295,18 +292,19 @@ class OpenApiImport
295
292
  params_path << param_name
296
293
  end
297
294
  #params_required << param_name if p[:required].to_s=="true"
298
- description_parameters << "# #{p[:name]}: (#{type}) #{"(required)" if p[:required].to_s=="true"} #{p[:description]}"
295
+ description_parameters << "# #{p[:name]}: (#{type}) #{"(required)" if p[:required].to_s=="true"} #{p[:description].split("\n").join("\n#\t\t\t")}"
299
296
  end
300
297
  elsif p[:in] == "query"
301
298
  params_query << p[:name]
302
299
  params_required << p[:name] if p[:required].to_s=="true"
303
- description_parameters << "# #{p[:name]}: (#{type}) #{"(required)" if p[:required].to_s=="true"} #{p[:description]}"
300
+ description_parameters << "# #{p[:name]}: (#{type}) #{"(required)" if p[:required].to_s=="true"} #{p[:description].split("\n").join("\n#\t\t\t")}"
304
301
  elsif p[:in] == "formData" or p[:in] == "formdata"
305
302
  #todo: take in consideration: default, required
306
303
  #todo: see if we should add the required as params to the method and not required as options
307
304
  #todo: set on data the required fields with the values from args
308
305
 
309
- description_parameters << "# #{p[:name]}: (#{p[:type]}) #{p[:description]}"
306
+ description_parameters << "# #{p[:name]}: (#{p[:type]}) #{p[:description].split("\n").join("\n#\t\t\t")}"
307
+
310
308
  case p[:type]
311
309
  when /^string$/i
312
310
  data_form << "#{p[:name]}: ''"
@@ -368,9 +366,10 @@ class OpenApiImport
368
366
  valv = ""
369
367
  end
370
368
  end
369
+
371
370
  if dpv.keys.include?(:description)
372
371
  description_parameters << "# #{dpk}: (#{dpv[:type]}) #{dpv[:description].split("\n").join("\n#\t\t\t")}"
373
- end
372
+ end
374
373
 
375
374
  data_pattern += get_patterns(dpk,dpv)
376
375
  data_pattern.uniq!
@@ -407,9 +406,11 @@ class OpenApiImport
407
406
  params_data.pop if params_data[-1].match?(/^\s*$/im)
408
407
  else
409
408
  if valv.to_s == ""
410
- valv = '"' + valv + '"'
409
+ valv = '""'
410
+ elsif valv.include?('"')
411
+ valv.gsub!('"',"'")
411
412
  end
412
- params_data << "#{dpk}: #{valv}"
413
+ params_data << "#{dpk}: #{valv}"
413
414
  end
414
415
  }
415
416
  if params_data.size > 0
@@ -705,10 +706,13 @@ class OpenApiImport
705
706
  if val[:example].is_a?(Array) and val.key?(:type) and val[:type]=='string'
706
707
  example << " #{prop.to_sym}: \"#{val[:example][0]}\", " # only the first example
707
708
  else
708
- example << if val[:example].is_a?(String) or val[:example].is_a?(Time)
709
- " #{prop.to_sym}: \"#{val[:example]}\", "
709
+ if val[:example].is_a?(String)
710
+ val[:example].gsub!('"', "'")
711
+ example << " #{prop.to_sym}: \"#{val[:example]}\", "
712
+ elsif val[:example].is_a?(Time)
713
+ example << " #{prop.to_sym}: \"#{val[:example]}\", "
710
714
  else
711
- " #{prop.to_sym}: #{val[:example]}, "
715
+ example << " #{prop.to_sym}: #{val[:example]}, "
712
716
  end
713
717
  end
714
718
  elsif val.key?(:type)
@@ -716,7 +720,7 @@ class OpenApiImport
716
720
  format = val[:type] if format.to_s == ""
717
721
  case val[:type].downcase
718
722
  when "string"
719
- example << " #{prop.to_sym}: \"#{format}\", "
723
+ example << " #{prop.to_sym}: \"#{format}\", "
720
724
  when "integer", "number"
721
725
  example << " #{prop.to_sym}: 0, "
722
726
  when "boolean"
@@ -748,7 +752,7 @@ class OpenApiImport
748
752
  example << get_response_examples({schema: val}, remove_readonly).join("\n")
749
753
  else
750
754
  example << " #{prop.to_sym}: " + get_response_examples({schema: val}, remove_readonly).join("\n") + ", "
751
- end
755
+ end
752
756
  end
753
757
  when "object"
754
758
  #todo: differ between response examples and data examples
@@ -809,7 +813,6 @@ class OpenApiImport
809
813
  else
810
814
  tresp = ""
811
815
  end
812
-
813
816
  if tresp.is_a?(String)
814
817
  response_example << tresp
815
818
  elsif tresp.is_a?(Hash)
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.10.9
4
+ version: 0.10.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mario Ruiz
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-11 00:00:00.000000000 Z
11
+ date: 2022-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oas_parser
@@ -53,25 +53,39 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.17'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rspec
56
+ name: activesupport
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: 3.8.0
62
59
  - - "~>"
63
60
  - !ruby/object:Gem::Version
64
- version: '3.8'
65
- type: :development
61
+ version: '6.1'
62
+ type: :runtime
66
63
  prerelease: false
67
64
  version_requirements: !ruby/object:Gem::Requirement
68
65
  requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '6.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.8'
69
76
  - - ">="
70
77
  - !ruby/object:Gem::Version
71
78
  version: 3.8.0
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
72
83
  - - "~>"
73
84
  - !ruby/object:Gem::Version
74
85
  version: '3.8'
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 3.8.0
75
89
  - !ruby/object:Gem::Dependency
76
90
  name: coveralls
77
91
  requirement: !ruby/object:Gem::Requirement
@@ -128,8 +142,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
142
  - !ruby/object:Gem::Version
129
143
  version: '0'
130
144
  requirements: []
131
- rubygems_version: 3.0.3
132
- signing_key:
145
+ rubygems_version: 3.2.15
146
+ signing_key:
133
147
  specification_version: 4
134
148
  summary: OpenApiImport -- Import a Swagger or Open API file and create a Ruby Request
135
149
  Hash file including all requests and responses with all the examples. The file can