open_api_import 0.3.0 → 0.4.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f87b9b81f1429055c87f8a1008e79051eab82269f976fd4c1aa4fbe8ed4f748
4
- data.tar.gz: 82a6fdc38c437e350dd16cac5daad820af3f1bffa7705799f33a5aa92b65cbf8
3
+ metadata.gz: 9b391f64d44cb78f95b9e4765f98023d3939752f5802e390fd8b972502061579
4
+ data.tar.gz: '08f6d8b7427f2dd8251c220314288b7e36cfdad30d89cf5d83e462640a5679cd'
5
5
  SHA512:
6
- metadata.gz: 0ad5187d6bfd18bbbdacd09968a8c142c687bab121600a2f052e9fcc91729fddc2b7b11327cc1b79227b4e273921ec2a3d7b5893b613dfbd488471f22ed7b393
7
- data.tar.gz: 5eafedf7aba260a9c4ad6aecd621a1f0fc2607993a519bd883c46814d67195f08d95c5d3019cd8618549659be26add433f2b02c534df7b6a607073d4c3e5d869
6
+ metadata.gz: 8e42c5dbde362282c5385b48d21852166dacb9283f5fd0e19a52a45f001a94a92d85df840c462c87252521b3a70f90bc2a1911b3cf55a787127df35bc6ca177f
7
+ data.tar.gz: 589ce2df15ad9589fe1900db1a2ff455b7c9e73cd98f07eda7005f79c221f65f2f149bc99ce45246979fe84a5cf993ff2a0809cea481799a99637698c9b57acd
data/README.md CHANGED
@@ -57,7 +57,43 @@ Take in consideration open_api_import gem is using the 'rufo' gem that executes
57
57
 
58
58
  ## Usage
59
59
 
60
- You have all the json and yaml examples that the Open API project supplies on /spec/fixtures/ folder. You can use any of those ones or your own Swagger or Open API file. To convert the Swagger or Open API file into a Request Hash:
60
+ After installation you can run using command line executable or importing from Ruby.
61
+
62
+ You have all the json and yaml examples that the Open API project supplies on /spec/fixtures/ folder. To test it you can use any of those ones or your own Swagger or Open API file.
63
+
64
+ ### Executable
65
+
66
+ For help and see the options, run in command line / bash: `open_api_import -h`
67
+
68
+ Example:
69
+ ```bash
70
+ open_api_import ./spec/fixtures/v2.0/yaml/uber.yaml -fp
71
+ ```
72
+
73
+ This is the output:
74
+
75
+ ```
76
+ Usage: open_api_import [open_api_file] [options]
77
+ Import a Swagger or Open API file and create a Ruby Request Hash file including all requests and responses.
78
+ More info: https://github.com/MarioRuiz/open_api_import
79
+
80
+ In case no options supplied:
81
+ * It will be used the value of operation_id on snake_case for the name of the methods
82
+ * It will be used the first folder of the path to create the module name
83
+ -n, --no_responses if you don't want to add the examples of responses in the resultant file.
84
+ -m, --mock Add the first response on the request as mock_response
85
+ -p, --path_method it will be used the path and http method to create the method names
86
+ -o, --operationId_method It will be used the operationId field like it is to create the method names
87
+ -f, --create_files It will create a file per module
88
+ -T, --tags_module It will be used the tags key to create the module name
89
+ -F, --fixed_module all the requests will be under the module Requests
90
+ ```
91
+
92
+
93
+ ### Ruby file
94
+ Write your ruby code on a file and in command line/bash: `ruby my_file.rb`
95
+
96
+ To convert the Swagger or Open API file into a Request Hash:
61
97
 
62
98
  ```ruby
63
99
  require 'open_api_import'
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/env ruby
2
+ require 'optparse'
3
+ require 'open_api_import'
4
+
5
+ options = {
6
+ name_for_module: :path
7
+ }
8
+
9
+ optparse = OptionParser.new do |opts|
10
+ opts.banner = "Usage: open_api_import [open_api_file] [options]\n"
11
+ opts.banner+= "Import a Swagger or Open API file and create a Ruby Request Hash file including all requests and responses.\n"
12
+ opts.banner+= "More info: https://github.com/MarioRuiz/open_api_import\n\n"
13
+ opts.banner+= "In case no options supplied: \n"
14
+ opts.banner+= " * It will be used the value of operation_id on snake_case for the name of the methods\n"
15
+ opts.banner+= " * It will be used the first folder of the path to create the module name\n"
16
+
17
+ opts.on("-n", "--no_responses", "if you don't want to add the examples of responses in the resultant file.") do
18
+ options[:include_responses] = false
19
+ end
20
+
21
+ opts.on("-m", "--mock", "Add the first response on the request as mock_response") do
22
+ options[:mock_response] = true
23
+ end
24
+
25
+ opts.on("-p", "--path_method", "it will be used the path and http method to create the method names") do
26
+ options[:create_method_name] = :path
27
+ end
28
+
29
+ opts.on("-o", "--operationId_method", "It will be used the operationId field like it is to create the method names") do
30
+ options[:create_method_name] = :operationId
31
+ end
32
+
33
+ opts.on("-f", "--create_files", "It will create a file per module") do
34
+ options[:create_files] = true
35
+ end
36
+
37
+ opts.on("-T", "--tags_module", "It will be used the tags key to create the module name") do
38
+ options[:name_for_module] = :tags
39
+ end
40
+
41
+ opts.on("-F", "--fixed_module", "all the requests will be under the module Requests") do
42
+ options[:name_for_module] = :fixed
43
+ end
44
+
45
+
46
+ end
47
+
48
+ optparse.parse!
49
+
50
+ if options.key?(:create_files)
51
+ if options[:name_for_module] == :path
52
+ options[:name_for_module] = :path_file
53
+ elsif options[:name_for_module] == :tags
54
+ options[:name_for_module] = :tags_file
55
+ end
56
+ options.delete(:create_files)
57
+ end
58
+
59
+ filename = ARGV.pop
60
+ if filename.to_s==''
61
+ puts optparse
62
+ puts "** Need to specify at least a file to import."
63
+ else
64
+ OpenApiImport.from filename, options
65
+ end
@@ -17,7 +17,7 @@ class OpenApiImport
17
17
  # path: it will be used the path and http method, for example for a GET on path: /users/list, the method name will be get_users_list
18
18
  # operation_id: it will be used the operationId field but using the snake_case version, for example for listUsers: list_users
19
19
  # operationId: it will be used the operationId field like it is, for example: listUsers
20
- # @param name_for_module [Symbol]. (:path, :path_file, :fixed) (default: :path). How the module names will be created.
20
+ # @param name_for_module [Symbol]. (:path, :path_file, :fixed, :tags, :tags_file) (default: :path). How the module names will be created.
21
21
  # path: It will be used the first folder of the path to create the module name, for example the path /users/list will be in the module Users and all the requests from all modules in the same file.
22
22
  # path_file: It will be used the first folder of the path to create the module name, for example the path /users/list will be in the module Users and each module will be in a new requests file.
23
23
  # tags: It will be used the tags key to create the module name, for example the tags: [users,list] will create the module UsersList and all the requests from all modules in the same file.
@@ -443,7 +443,11 @@ class OpenApiImport
443
443
  puts message
444
444
  @logger.info message
445
445
  else
446
- files[module_requests] = output #for the last one
446
+ unless files.key?(module_requests)
447
+ files[module_requests] = Array.new
448
+ end
449
+ files[module_requests].concat(output) #for the last one
450
+
447
451
  requires_txt = ""
448
452
  message = "** Generated files that contain the code of the requests after importing the Swagger file: "
449
453
  puts message
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.3.0
4
+ version: 0.4.1
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-02-06 00:00:00.000000000 Z
11
+ date: 2019-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oas_parser
@@ -54,16 +54,22 @@ dependencies:
54
54
  name: nice_hash
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '1.9'
57
60
  - - ">="
58
61
  - !ruby/object:Gem::Version
59
- version: 1.8.1
62
+ version: 1.9.0
60
63
  type: :runtime
61
64
  prerelease: false
62
65
  version_requirements: !ruby/object:Gem::Requirement
63
66
  requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.9'
64
70
  - - ">="
65
71
  - !ruby/object:Gem::Version
66
- version: 1.8.1
72
+ version: 1.9.0
67
73
  - !ruby/object:Gem::Dependency
68
74
  name: rspec
69
75
  requirement: !ruby/object:Gem::Requirement
@@ -108,7 +114,8 @@ description: OpenApiImport -- Import a Swagger or Open API file and create a Rub
108
114
  Request Hash file including all requests and responses with all the examples. The
109
115
  file can be in JSON or YAML
110
116
  email: marioruizs@gmail.com
111
- executables: []
117
+ executables:
118
+ - open_api_import
112
119
  extensions: []
113
120
  extra_rdoc_files:
114
121
  - LICENSE
@@ -117,6 +124,7 @@ files:
117
124
  - ".yardopts"
118
125
  - LICENSE
119
126
  - README.md
127
+ - bin/open_api_import
120
128
  - lib/open_api_import.rb
121
129
  - lib/open_api_import/utils.rb
122
130
  homepage: https://github.com/MarioRuiz/open_api_import