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 +4 -4
- data/.rspec_status +12 -10
- data/README.md +5 -3
- data/divide.jpg +0 -0
- data/example/v2.yaml +103 -0
- data/example/v3.yaml +110 -0
- data/lib/oas_contrib/command.rb +2 -2
- data/lib/oas_contrib/resolver/base.rb +4 -1
- data/lib/oas_contrib/version.rb +1 -1
- data/oas_contrib.gemspec +4 -4
- metadata +13 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7fa1d5623f4d09450ed267bb56e209700143a0aa1d80259164ace19ea0a2d6d9
|
4
|
+
data.tar.gz: 29b486addbd6c5ca256d668b489b258ada6b8a36e0c52d9265659f322c748684
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
4
|
-
./spec/divide_command_spec.rb[1:2:1] | passed | 0.
|
5
|
-
./spec/divide_command_spec.rb[1:3:1] | passed | 0.
|
6
|
-
./spec/divide_command_spec.rb[1:4:1] | passed | 0.
|
7
|
-
./spec/divide_command_spec.rb[1:5:1] | passed | 0.
|
8
|
-
./spec/
|
9
|
-
./spec/merge_command_spec.rb[1:
|
10
|
-
./spec/merge_command_spec.rb[1:
|
11
|
-
./spec/merge_command_spec.rb[1:
|
12
|
-
./spec/merge_command_spec.rb[1:
|
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
|
9
|
+
* Preview OAS file with SwaggerUI.
|
10
|
+
|
11
|
+

|
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"
|
data/lib/oas_contrib/command.rb
CHANGED
@@ -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
|
data/lib/oas_contrib/version.rb
CHANGED
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', '
|
21
|
-
spec.add_development_dependency 'bundler', '
|
22
|
-
spec.add_development_dependency 'rake', '
|
23
|
-
spec.add_development_dependency 'rspec', '
|
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.
|
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:
|
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
|