oas_contrib 0.2.7 → 0.2.8

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: 553f429ce4827e908aff9f8336815d800efe3265804cf6435584d817c9d02126
4
- data.tar.gz: fc0af8b12691fd09e92dfb3b7472887a2ed4c25884fc67541b48acf54c820967
3
+ metadata.gz: 7fa1d5623f4d09450ed267bb56e209700143a0aa1d80259164ace19ea0a2d6d9
4
+ data.tar.gz: 29b486addbd6c5ca256d668b489b258ada6b8a36e0c52d9265659f322c748684
5
5
  SHA512:
6
- metadata.gz: c4dbba15b781c5ae99f0c1ad3b2ebb0c2e4b70f5a41d495a93a880a019f6353114ad6b42935f7888c254193da25f793220764c9e3bad9a69be9797cb3be8ff6c
7
- data.tar.gz: 93348ec172d47a517c4b52b960616a507ba0161bfe72f8128f01d188057aeac1adef11c78737bd20c703686408bfd603c35d26a51fb67877ed24a364ed7a54b5
6
+ metadata.gz: c925b3c0c21f3d9e0178a5ebb9deda4cc2b6b1c20b3a14a4d6cdb655aab0a3dd93c3f4e07ebaad6fe7e4a1ca2451a5268d0497cfaa2520c4247a4016fa6b83c6
7
+ data.tar.gz: 42aaac1a8b4aab20067d4e70bedc78b2080114610807d687f5d0949c62a4c264f6ce41d7996a18cfae2739286a0bb6d90ac54be3baf99fb444e4f4735ade761a
data/.rspec_status CHANGED
@@ -1,12 +1,14 @@
1
1
  example_id | status | run_time |
2
2
  ------------------------------------ | ------ | --------------- |
3
- ./spec/divide_command_spec.rb[1:1:1] | passed | 0.37097 seconds |
4
- ./spec/divide_command_spec.rb[1:2:1] | passed | 0.34114 seconds |
5
- ./spec/divide_command_spec.rb[1:3:1] | passed | 0.33399 seconds |
6
- ./spec/divide_command_spec.rb[1:4:1] | passed | 0.33446 seconds |
7
- ./spec/divide_command_spec.rb[1:5:1] | passed | 0.39866 seconds |
8
- ./spec/merge_command_spec.rb[1:1:1] | passed | 0.34996 seconds |
9
- ./spec/merge_command_spec.rb[1:2:1] | passed | 0.33477 seconds |
10
- ./spec/merge_command_spec.rb[1:3:1] | passed | 0.39575 seconds |
11
- ./spec/merge_command_spec.rb[1:4:1] | passed | 0.46906 seconds |
12
- ./spec/merge_command_spec.rb[1:5:1] | passed | 0.42331 seconds |
3
+ ./spec/divide_command_spec.rb[1:1:1] | passed | 0.38062 seconds |
4
+ ./spec/divide_command_spec.rb[1:2:1] | passed | 0.37096 seconds |
5
+ ./spec/divide_command_spec.rb[1:3:1] | passed | 0.37719 seconds |
6
+ ./spec/divide_command_spec.rb[1:4:1] | passed | 0.36952 seconds |
7
+ ./spec/divide_command_spec.rb[1:5:1] | passed | 0.37552 seconds |
8
+ ./spec/divide_command_spec.rb[1:6:1] | passed | 0.3675 seconds |
9
+ ./spec/merge_command_spec.rb[1:1:1] | passed | 0.36627 seconds |
10
+ ./spec/merge_command_spec.rb[1:2:1] | passed | 0.35855 seconds |
11
+ ./spec/merge_command_spec.rb[1:3:1] | failed | 0.4193 seconds |
12
+ ./spec/merge_command_spec.rb[1:4:1] | passed | 0.36323 seconds |
13
+ ./spec/merge_command_spec.rb[1:5:1] | passed | 0.3595 seconds |
14
+ ./spec/merge_command_spec.rb[1:6:1] | failed | 0.35928 seconds |
data/README.md CHANGED
@@ -6,7 +6,9 @@ Libraries and Commands for Open API (2.0, 3.0) Specification.
6
6
 
7
7
  * Divide OAS file.
8
8
  * Merge OAS divided files.
9
- * Preview OAS file with SaggerUI.
9
+ * Preview OAS file with SwaggerUI.
10
+
11
+ ![divide](/divide.jpg)
10
12
 
11
13
  ## Installation
12
14
 
@@ -43,7 +45,7 @@ Usage:
43
45
  oas_contrib divide <spec_file> <output_dir> (<options>)
44
46
 
45
47
  Options:
46
- [--out-ext=OUT_EXT] # output file ext (.yml or .json)
48
+ [--out-ext=OUT_EXT] # output file ext (.yml or .yaml or .json)
47
49
  # Default: .yml
48
50
 
49
51
  Divide the spec_file into path units and schema units.
@@ -97,7 +99,7 @@ Usage:
97
99
  oas_contrib merge <input_dir> <spec_file> (<options>)
98
100
 
99
101
  Options:
100
- [--in-ext=IN_EXT] # input file ext (.yml or .json)
102
+ [--in-ext=IN_EXT] # input file ext (.yml or .yaml or .json)
101
103
  # Default: .yml
102
104
 
103
105
  Merge multiple divided files into an spec_file.
data/divide.jpg ADDED
Binary file
data/example/v2.yaml ADDED
@@ -0,0 +1,103 @@
1
+ ---
2
+ swagger: '2.0'
3
+ info:
4
+ version: 1.0.0
5
+ title: Swagger Petstore
6
+ license:
7
+ name: MIT
8
+ host: petstore.swagger.io
9
+ basePath: "/v1"
10
+ schemes:
11
+ - http
12
+ consumes:
13
+ - application/json
14
+ produces:
15
+ - application/json
16
+ components: {}
17
+ paths:
18
+ "/pets":
19
+ get:
20
+ summary: List all pets
21
+ operationId: listPets
22
+ tags:
23
+ - pets
24
+ parameters:
25
+ - name: limit
26
+ in: query
27
+ description: How many items to return at one time (max 100)
28
+ required: false
29
+ type: integer
30
+ format: int32
31
+ responses:
32
+ '200':
33
+ description: A paged array of pets
34
+ headers:
35
+ x-next:
36
+ type: string
37
+ description: A link to the next page of responses
38
+ schema:
39
+ "$ref": "#/definitions/Pets"
40
+ default:
41
+ description: unexpected error
42
+ schema:
43
+ "$ref": "#/definitions/Error"
44
+ post:
45
+ summary: Create a pet
46
+ operationId: createPets
47
+ tags:
48
+ - pets
49
+ responses:
50
+ '201':
51
+ description: Null response
52
+ default:
53
+ description: unexpected error
54
+ schema:
55
+ "$ref": "#/definitions/Error"
56
+ "/pets/{petId}":
57
+ get:
58
+ summary: Info for a specific pet
59
+ operationId: showPetById
60
+ tags:
61
+ - pets
62
+ parameters:
63
+ - name: petId
64
+ in: path
65
+ required: true
66
+ description: The id of the pet to retrieve
67
+ type: string
68
+ responses:
69
+ '200':
70
+ description: Expected response to a valid request
71
+ schema:
72
+ "$ref": "#/definitions/Pets"
73
+ default:
74
+ description: unexpected error
75
+ schema:
76
+ "$ref": "#/definitions/Error"
77
+ definitions:
78
+ Pet:
79
+ required:
80
+ - id
81
+ - name
82
+ properties:
83
+ id:
84
+ type: integer
85
+ format: int64
86
+ name:
87
+ type: string
88
+ tag:
89
+ type: string
90
+ Error:
91
+ required:
92
+ - code
93
+ - message
94
+ properties:
95
+ code:
96
+ type: integer
97
+ format: int32
98
+ message:
99
+ type: string
100
+ Pets:
101
+ type: array
102
+ items:
103
+ "$ref": "#/definitions/Pet"
data/example/v3.yaml ADDED
@@ -0,0 +1,110 @@
1
+ ---
2
+ openapi: 3.0.0
3
+ info:
4
+ version: 1.0.0
5
+ title: Swagger Petstore
6
+ license:
7
+ name: MIT
8
+ servers:
9
+ - url: http://petstore.swagger.io/v1
10
+ components:
11
+ schemas:
12
+ Pet:
13
+ required:
14
+ - id
15
+ - name
16
+ properties:
17
+ id:
18
+ type: integer
19
+ format: int64
20
+ name:
21
+ type: string
22
+ tag:
23
+ type: string
24
+ Error:
25
+ required:
26
+ - code
27
+ - message
28
+ properties:
29
+ code:
30
+ type: integer
31
+ format: int32
32
+ message:
33
+ type: string
34
+ Pets:
35
+ type: array
36
+ items:
37
+ "$ref": "#/components/schemas/Pet"
38
+ paths:
39
+ "/pets":
40
+ get:
41
+ summary: List all pets
42
+ operationId: listPets
43
+ tags:
44
+ - pets
45
+ parameters:
46
+ - name: limit
47
+ in: query
48
+ description: How many items to return at one time (max 100)
49
+ required: false
50
+ schema:
51
+ type: integer
52
+ format: int32
53
+ responses:
54
+ '200':
55
+ description: A paged array of pets
56
+ headers:
57
+ x-next:
58
+ description: A link to the next page of responses
59
+ schema:
60
+ type: string
61
+ content:
62
+ application/json:
63
+ schema:
64
+ "$ref": "#/components/schemas/Pets"
65
+ default:
66
+ description: unexpected error
67
+ content:
68
+ application/json:
69
+ schema:
70
+ "$ref": "#/components/schemas/Error"
71
+ post:
72
+ summary: Create a pet
73
+ operationId: createPets
74
+ tags:
75
+ - pets
76
+ responses:
77
+ '201':
78
+ description: Null response
79
+ default:
80
+ description: unexpected error
81
+ content:
82
+ application/json:
83
+ schema:
84
+ "$ref": "#/components/schemas/Error"
85
+ "/pets/{petId}":
86
+ get:
87
+ summary: Info for a specific pet
88
+ operationId: showPetById
89
+ tags:
90
+ - pets
91
+ parameters:
92
+ - name: petId
93
+ in: path
94
+ required: true
95
+ description: The id of the pet to retrieve
96
+ schema:
97
+ type: string
98
+ responses:
99
+ '200':
100
+ description: Expected response to a valid request
101
+ content:
102
+ application/json:
103
+ schema:
104
+ "$ref": "#/components/schemas/Pets"
105
+ default:
106
+ description: unexpected error
107
+ content:
108
+ application/json:
109
+ schema:
110
+ "$ref": "#/components/schemas/Error"
@@ -9,7 +9,7 @@ module OasContrib
9
9
  include Thor::Actions
10
10
 
11
11
  desc 'divide <spec_file> <output_dir> (<options>)', 'Divide the spec_file into path units and schema units.'
12
- option :out_ext, type: :string, default: '.yml', desc: 'output file ext (.yml or .json)'
12
+ option :out_ext, type: :string, default: '.yml', desc: 'output file ext (.yml or .yaml or .json)'
13
13
 
14
14
  # Divide the spec file command
15
15
  # @param [String] spec_file spec file path
@@ -26,7 +26,7 @@ module OasContrib
26
26
  end
27
27
 
28
28
  desc 'merge <input_dir> <spec_file> (<options>)', 'Merge multiple divided files into an spec_file.'
29
- option :in_ext, type: :string, default: '.yml', desc: 'input file ext (.yml or .json)'
29
+ option :in_ext, type: :string, default: '.yml', desc: 'input file ext (.yml or .yaml or .json)'
30
30
 
31
31
  # Merge divided files to spec file command
32
32
  # @param [String] indir input directory path
@@ -19,7 +19,7 @@ module OasContrib
19
19
  include OasContrib::Interface::Resolver
20
20
 
21
21
  # @return [Array] approval file extensions
22
- DEFINED_FILE_EXT = ['.json', '.yml'].freeze
22
+ DEFINED_FILE_EXT = ['.json', '.yml', '.yaml'].freeze
23
23
 
24
24
  # @return [String] the directory name of meta part files
25
25
  DIR_NAME_META = 'meta'.freeze
@@ -107,6 +107,7 @@ module OasContrib
107
107
  case @infile_ext
108
108
  when DEFINED_FILE_EXT[0] then JSON.parse(File.read(path))
109
109
  when DEFINED_FILE_EXT[1] then YAML.load_file(path)
110
+ when DEFINED_FILE_EXT[2] then YAML.load_file(path)
110
111
  else raise ArgumentError, 'Undefined input file type'
111
112
  end
112
113
  end
@@ -117,9 +118,11 @@ module OasContrib
117
118
  # @return [IO]
118
119
  def _output(hash, file)
119
120
  puts "Dist: #{file.path}"
121
+ p @outfile_ext
120
122
  case @outfile_ext
121
123
  when DEFINED_FILE_EXT[0] then JSON.dump(hash, file)
122
124
  when DEFINED_FILE_EXT[1] then YAML.dump(hash, file)
125
+ when DEFINED_FILE_EXT[2] then YAML.dump(hash, file)
123
126
  else raise ArgumentError, 'Undefined output file type'
124
127
  end
125
128
  end
@@ -1,4 +1,4 @@
1
1
  module OasContrib
2
2
  # @return [String] semantic version
3
- VERSION = '0.2.7'.freeze
3
+ VERSION = '0.2.8'.freeze
4
4
  end
data/oas_contrib.gemspec CHANGED
@@ -17,8 +17,8 @@ Gem::Specification.new do |spec|
17
17
  spec.bindir = 'exe'
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ['lib']
20
- spec.add_dependency 'thor', '~> 0.20'
21
- spec.add_development_dependency 'bundler', '~> 2.0.1'
22
- spec.add_development_dependency 'rake', '~> 10.0'
23
- spec.add_development_dependency 'rspec', '~> 3.0'
20
+ spec.add_dependency 'thor', '> 0.20'
21
+ spec.add_development_dependency 'bundler', '> 2.0.1'
22
+ spec.add_development_dependency 'rake', '> 10.0'
23
+ spec.add_development_dependency 'rspec', '> 3.0'
24
24
  end
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oas_contrib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michinao Shimizu
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-29 00:00:00.000000000 Z
11
+ date: 2022-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.20'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.20'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 2.0.1
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.0.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '10.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '3.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.0'
69
69
  description: Divide OAS file (2.X, 3.X). Merge divided files to a OAS file. Preview
@@ -84,6 +84,7 @@ files:
84
84
  - Rakefile
85
85
  - bin/console
86
86
  - bin/setup
87
+ - divide.jpg
87
88
  - example/dist/v2/meta/001_swagger.yml
88
89
  - example/dist/v2/meta/002_info.yml
89
90
  - example/dist/v2/meta/003_host.yml
@@ -105,7 +106,9 @@ files:
105
106
  - example/dist/v3/model/003_Pets.yml
106
107
  - example/dist/v3/path/001_pets.yml
107
108
  - example/dist/v3/path/002_pets_{petId}.yml
109
+ - example/v2.yaml
108
110
  - example/v2.yml
111
+ - example/v3.yaml
109
112
  - example/v3.yml
110
113
  - exe/oas_contrib
111
114
  - lib/oas_contrib.rb