r2-oas 0.3.1 → 0.3.2
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/CHANGELOG.md +6 -0
- data/lib/r2-oas/deploy/client.rb +20 -5
- data/lib/r2-oas/tasks/tool.rake +9 -2
- data/lib/r2-oas/version.rb +1 -1
- data/r2-oas.gemspec +1 -1
- metadata +4 -50
- data/.github/ISSUE_TEMPLATE.md +0 -12
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -12
- data/bin/console +0 -12
- data/bin/setup +0 -8
- data/devscript/all_support_ruby.sh +0 -43
- data/devscript/bundle_for_all_support_ruby.sh +0 -31
- data/devscript/rspec_for_all_support_ruby.sh +0 -27
- data/docs/.nojekyll +0 -0
- data/docs/README.md +0 -173
- data/docs/_sidebar.md +0 -25
- data/docs/attention/if_clash.md +0 -17
- data/docs/index.html +0 -29
- data/docs/schema/3.0.0.md +0 -155
- data/docs/setting/COC.md +0 -14
- data/docs/setting/CORS.md +0 -22
- data/docs/setting/configure.md +0 -176
- data/docs/trableshouting/runtime_error.md +0 -44
- data/docs/usage/analyze_docs.md +0 -875
- data/docs/usage/clean_docs.md +0 -19
- data/docs/usage/deploy_docs.md +0 -839
- data/docs/usage/display_paths_list.md +0 -35
- data/docs/usage/display_paths_stats.md +0 -54
- data/docs/usage/edit_docs.md +0 -218
- data/docs/usage/generate_docs.md +0 -412
- data/docs/usage/monitor_docs.md +0 -219
- data/docs/usage/use_hook_methods.md +0 -236
- data/docs/usage/use_hook_to_generate_docs.md +0 -235
- data/docs/usage/use_schema_namespace.md +0 -181
- data/docs/usage/use_tag_namespace.md +0 -180
- data/docs/usage/view_docs.md +0 -262
- data/gemfiles/ruby_2.3.3.gemfile +0 -11
- data/gemfiles/ruby_2.4.2.gemfile +0 -11
- data/gemfiles/ruby_2.5.8.gemfile +0 -11
- data/gemfiles/ruby_2.6.6.gemfile +0 -11
- data/gemfiles/ruby_2.7.1.gemfile +0 -11
- data/lib/r2-oas/deploy/swagger-ui/dist/favicon-16x16.png +0 -0
- data/lib/r2-oas/deploy/swagger-ui/dist/favicon-32x32.png +0 -0
- data/lib/r2-oas/deploy/swagger-ui/dist/oauth2-redirect.html +0 -68
- data/lib/r2-oas/deploy/swagger-ui/dist/swagger-ui-bundle.js +0 -134
- data/lib/r2-oas/deploy/swagger-ui/dist/swagger-ui-bundle.js.map +0 -1
- data/lib/r2-oas/deploy/swagger-ui/dist/swagger-ui-standalone-preset.js +0 -22
- data/lib/r2-oas/deploy/swagger-ui/dist/swagger-ui-standalone-preset.js.map +0 -1
- data/lib/r2-oas/deploy/swagger-ui/dist/swagger-ui.css +0 -4
- data/lib/r2-oas/deploy/swagger-ui/dist/swagger-ui.css.map +0 -1
- data/lib/r2-oas/deploy/swagger-ui/dist/swagger-ui.js +0 -9
- data/lib/r2-oas/deploy/swagger-ui/dist/swagger-ui.js.map +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 517376839248a5dd6de6e70b753490e02a23ac70c967129fc7a578ec89da596c
|
|
4
|
+
data.tar.gz: 7eedf1ebcd319c0b93ee1ac58556ce0e4788658e62b64eecbad825862770245f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 20b7b68bbf6c4e8ec2d963301855d7bd078b78c31a98e8a01d421197a9e080682e459fb2a2b5541ca07580b995003f3fe17f88b97b1ab5295bdcda793d255c81
|
|
7
|
+
data.tar.gz: 140b4b5c71b4e34ed9f7ef7796414699db821ac078d6ad0101530145d0e3084cfd3f4e7b0c85e6a6091a2213b91ce6f976d4a2ee44d20434ce75f4f848595bf1
|
data/CHANGELOG.md
CHANGED
data/lib/r2-oas/deploy/client.rb
CHANGED
|
@@ -6,22 +6,33 @@ require 'fileutils'
|
|
|
6
6
|
module R2OAS
|
|
7
7
|
module Deploy
|
|
8
8
|
class Client < Schema::Base
|
|
9
|
+
SWAGGER_UI_DIST_URL = 'https://github.com/swagger-api/swagger-ui/trunk/dist'
|
|
10
|
+
|
|
11
|
+
def initialize(options = {})
|
|
12
|
+
super(options)
|
|
13
|
+
@download_dir = "#{SecureRandom.uuid[0..7]}/dist"
|
|
14
|
+
@dist_path = File.expand_path(Rails.root.join(@download_dir), __FILE__)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def download_swagger_ui_dist
|
|
18
|
+
system("svn export #{SWAGGER_UI_DIST_URL} #{@dist_path}")
|
|
19
|
+
end
|
|
20
|
+
|
|
9
21
|
def deploy
|
|
10
22
|
copy_swagger_ui_dist
|
|
11
23
|
copy_swagger_ui_index
|
|
12
24
|
copy_oas_doc_file
|
|
25
|
+
ensure
|
|
26
|
+
remove_download_dist
|
|
13
27
|
end
|
|
14
28
|
|
|
15
29
|
private
|
|
16
30
|
|
|
17
31
|
def copy_swagger_ui_dist
|
|
18
32
|
docs_path = File.expand_path(Rails.root.join(deploy_dir_path), __FILE__)
|
|
19
|
-
return if FileTest.exists?(docs_path)
|
|
20
|
-
|
|
21
33
|
FileUtils.mkdir_p(docs_path) unless FileTest.exists?(docs_path)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
FileUtils.cp_r(dist_path, docs_path)
|
|
34
|
+
FileUtils.mkdir_p(@dist_path) unless FileTest.exists?(@dist_path)
|
|
35
|
+
FileUtils.cp_r(@dist_path, docs_path)
|
|
25
36
|
end
|
|
26
37
|
|
|
27
38
|
def copy_swagger_ui_index
|
|
@@ -39,6 +50,10 @@ module R2OAS
|
|
|
39
50
|
FileUtils.cp_r(oas_doc_file_path, swagger_file_path)
|
|
40
51
|
end
|
|
41
52
|
|
|
53
|
+
def remove_download_dist
|
|
54
|
+
FileUtils.rm_rf(File.expand_path('..', @dist_path))
|
|
55
|
+
end
|
|
56
|
+
|
|
42
57
|
# [ref]
|
|
43
58
|
# https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Lint/ErbNewArguments
|
|
44
59
|
def make_index(template)
|
data/lib/r2-oas/tasks/tool.rake
CHANGED
|
@@ -11,12 +11,19 @@ namespace :routes do
|
|
|
11
11
|
desc 'Deploy OAS Document'
|
|
12
12
|
task deploy: [:common] do
|
|
13
13
|
start do
|
|
14
|
+
client_options = {}
|
|
15
|
+
client = R2OAS::Deploy::Client.new(client_options)
|
|
16
|
+
|
|
17
|
+
download_dist_th = Thread.new do
|
|
18
|
+
puts 'Download swagger-api/swagger-ui/dist ... (async)'
|
|
19
|
+
client.download_swagger_ui_dist
|
|
20
|
+
end
|
|
21
|
+
|
|
14
22
|
builder_options = { unit_paths_file_path: unit_paths_file_path }
|
|
15
23
|
builder = R2OAS::Schema::Builder.new(builder_options)
|
|
16
24
|
builder.build_docs
|
|
17
25
|
|
|
18
|
-
|
|
19
|
-
client = R2OAS::Deploy::Client.new(client_options)
|
|
26
|
+
download_dist_th.join
|
|
20
27
|
client.deploy
|
|
21
28
|
end
|
|
22
29
|
end
|
data/lib/r2-oas/version.rb
CHANGED
data/r2-oas.gemspec
CHANGED
|
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
|
|
|
25
25
|
# Specify which files should be added to the gem when it is released.
|
|
26
26
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
27
27
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
28
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
28
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|bin|.github|devscript|docs|gemfiles)/}) }
|
|
29
29
|
end
|
|
30
30
|
spec.bindir = 'exe'
|
|
31
31
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: r2-oas
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- yukihirop
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-07-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: docker-api
|
|
@@ -251,8 +251,6 @@ executables: []
|
|
|
251
251
|
extensions: []
|
|
252
252
|
extra_rdoc_files: []
|
|
253
253
|
files:
|
|
254
|
-
- ".github/ISSUE_TEMPLATE.md"
|
|
255
|
-
- ".github/PULL_REQUEST_TEMPLATE.md"
|
|
256
254
|
- ".gitignore"
|
|
257
255
|
- ".rspec"
|
|
258
256
|
- ".rubocop.yml"
|
|
@@ -267,39 +265,6 @@ files:
|
|
|
267
265
|
- README.ja.md
|
|
268
266
|
- README.md
|
|
269
267
|
- Rakefile
|
|
270
|
-
- bin/console
|
|
271
|
-
- bin/setup
|
|
272
|
-
- devscript/all_support_ruby.sh
|
|
273
|
-
- devscript/bundle_for_all_support_ruby.sh
|
|
274
|
-
- devscript/rspec_for_all_support_ruby.sh
|
|
275
|
-
- docs/.nojekyll
|
|
276
|
-
- docs/README.md
|
|
277
|
-
- docs/_sidebar.md
|
|
278
|
-
- docs/attention/if_clash.md
|
|
279
|
-
- docs/index.html
|
|
280
|
-
- docs/schema/3.0.0.md
|
|
281
|
-
- docs/setting/COC.md
|
|
282
|
-
- docs/setting/CORS.md
|
|
283
|
-
- docs/setting/configure.md
|
|
284
|
-
- docs/trableshouting/runtime_error.md
|
|
285
|
-
- docs/usage/analyze_docs.md
|
|
286
|
-
- docs/usage/clean_docs.md
|
|
287
|
-
- docs/usage/deploy_docs.md
|
|
288
|
-
- docs/usage/display_paths_list.md
|
|
289
|
-
- docs/usage/display_paths_stats.md
|
|
290
|
-
- docs/usage/edit_docs.md
|
|
291
|
-
- docs/usage/generate_docs.md
|
|
292
|
-
- docs/usage/monitor_docs.md
|
|
293
|
-
- docs/usage/use_hook_methods.md
|
|
294
|
-
- docs/usage/use_hook_to_generate_docs.md
|
|
295
|
-
- docs/usage/use_schema_namespace.md
|
|
296
|
-
- docs/usage/use_tag_namespace.md
|
|
297
|
-
- docs/usage/view_docs.md
|
|
298
|
-
- gemfiles/ruby_2.3.3.gemfile
|
|
299
|
-
- gemfiles/ruby_2.4.2.gemfile
|
|
300
|
-
- gemfiles/ruby_2.5.8.gemfile
|
|
301
|
-
- gemfiles/ruby_2.6.6.gemfile
|
|
302
|
-
- gemfiles/ruby_2.7.1.gemfile
|
|
303
268
|
- lib/r2-oas.rb
|
|
304
269
|
- lib/r2-oas/app_configuration.rb
|
|
305
270
|
- lib/r2-oas/app_configuration/server.rb
|
|
@@ -312,17 +277,6 @@ files:
|
|
|
312
277
|
- lib/r2-oas/configuration.rb
|
|
313
278
|
- lib/r2-oas/configuration/paths_config.rb
|
|
314
279
|
- lib/r2-oas/deploy/client.rb
|
|
315
|
-
- lib/r2-oas/deploy/swagger-ui/dist/favicon-16x16.png
|
|
316
|
-
- lib/r2-oas/deploy/swagger-ui/dist/favicon-32x32.png
|
|
317
|
-
- lib/r2-oas/deploy/swagger-ui/dist/oauth2-redirect.html
|
|
318
|
-
- lib/r2-oas/deploy/swagger-ui/dist/swagger-ui-bundle.js
|
|
319
|
-
- lib/r2-oas/deploy/swagger-ui/dist/swagger-ui-bundle.js.map
|
|
320
|
-
- lib/r2-oas/deploy/swagger-ui/dist/swagger-ui-standalone-preset.js
|
|
321
|
-
- lib/r2-oas/deploy/swagger-ui/dist/swagger-ui-standalone-preset.js.map
|
|
322
|
-
- lib/r2-oas/deploy/swagger-ui/dist/swagger-ui.css
|
|
323
|
-
- lib/r2-oas/deploy/swagger-ui/dist/swagger-ui.css.map
|
|
324
|
-
- lib/r2-oas/deploy/swagger-ui/dist/swagger-ui.js
|
|
325
|
-
- lib/r2-oas/deploy/swagger-ui/dist/swagger-ui.js.map
|
|
326
280
|
- lib/r2-oas/deploy/swagger-ui/index.html.erb
|
|
327
281
|
- lib/r2-oas/errors.rb
|
|
328
282
|
- lib/r2-oas/hooks/global_hook.rb
|
|
@@ -418,9 +372,9 @@ licenses:
|
|
|
418
372
|
- MIT
|
|
419
373
|
metadata:
|
|
420
374
|
bug_tracker_uri: https://github.com/yukihirop/r2-oas/issues
|
|
421
|
-
changelog_uri: https://github.com/yukihirop/r2-oas/blob/v0.3.
|
|
375
|
+
changelog_uri: https://github.com/yukihirop/r2-oas/blob/v0.3.2/CHANGELOG.md
|
|
422
376
|
documentation_uri: https://yukihirop.github.io/r2-oas
|
|
423
|
-
source_code_uri: https://github.com/yukihirop/r2-oas/tree/v0.3.
|
|
377
|
+
source_code_uri: https://github.com/yukihirop/r2-oas/tree/v0.3.2
|
|
424
378
|
post_install_message:
|
|
425
379
|
rdoc_options: []
|
|
426
380
|
require_paths:
|
data/.github/ISSUE_TEMPLATE.md
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
### Summary
|
|
2
|
-
|
|
3
|
-
### Other Information
|
|
4
|
-
|
|
5
|
-
If there's anything else that's important and relevant to your pull
|
|
6
|
-
request, mention that information here. This could include
|
|
7
|
-
benchmarks, or other information.
|
|
8
|
-
|
|
9
|
-
If you are updating any of the CHANGELOG files or are asked to update the
|
|
10
|
-
CHANGELOG files by reviewers, please add the CHANGELOG entry at the top of the file.
|
|
11
|
-
|
|
12
|
-
Thanks for contributing to r2-oas!
|
data/bin/console
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
require 'bundler/setup'
|
|
5
|
-
require 'r2-oas'
|
|
6
|
-
|
|
7
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
|
8
|
-
# with your gem easier. You can also use a different console, if you like.
|
|
9
|
-
|
|
10
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
11
|
-
require 'pry'
|
|
12
|
-
Pry.start
|
data/bin/setup
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
#!/usr/local/bin/bash
|
|
2
|
-
|
|
3
|
-
if [ $# -eq 0 ]; then
|
|
4
|
-
echo "Please specify 'rspec' or 'bundle', 'list'"
|
|
5
|
-
exit 1
|
|
6
|
-
fi
|
|
7
|
-
|
|
8
|
-
# Check if rbenv is installed
|
|
9
|
-
which rbenv > /dev/null 2>&1 && if [ $? -ne 0 ]; then echo -e 'rbenv is need\nPlease install rbenv: https://github.com/rbenv/rbenv'; exit 1; fi
|
|
10
|
-
|
|
11
|
-
declare -a all_support_ruby=(
|
|
12
|
-
'2.3.3'
|
|
13
|
-
'2.4.2'
|
|
14
|
-
'2.5.8'
|
|
15
|
-
'2.6.6'
|
|
16
|
-
'2.7.1'
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
declare -a target_ruby
|
|
20
|
-
declare -a versions=${@:2:$#}
|
|
21
|
-
if [[ $# > 1 ]]; then
|
|
22
|
-
target_ruby=("${versions[@]}")
|
|
23
|
-
else
|
|
24
|
-
target_ruby=("${all_support_ruby[@]}")
|
|
25
|
-
fi
|
|
26
|
-
|
|
27
|
-
command=$1
|
|
28
|
-
case $command in
|
|
29
|
-
"bundle")
|
|
30
|
-
source "$(pwd)/devscript/bundle_for_all_support_ruby.sh" "${target_ruby[@]}";;
|
|
31
|
-
"rspec")
|
|
32
|
-
source "$(pwd)/devscript/rspec_for_all_support_ruby.sh" "${target_ruby[@]}";;
|
|
33
|
-
"list")
|
|
34
|
-
echo "===== Display All Support Ruby Version ====="
|
|
35
|
-
for version in "${target_ruby[@]}"; do
|
|
36
|
-
echo "${version}"
|
|
37
|
-
done
|
|
38
|
-
echo "============================================";;
|
|
39
|
-
*)
|
|
40
|
-
echo -n "Do not support command: ${command}\nPlease specify 'bundle' or 'rspec', 'list'"
|
|
41
|
-
exit 1;;
|
|
42
|
-
esac
|
|
43
|
-
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
#!/usr/local/bin/bash
|
|
2
|
-
|
|
3
|
-
# Bundle install each All Support Ruby
|
|
4
|
-
declare -a report
|
|
5
|
-
for version in $@; do
|
|
6
|
-
echo "== Bundle install for Ruby Version: ${version} =="
|
|
7
|
-
|
|
8
|
-
# Remove gemfile.lock
|
|
9
|
-
lockfile="./gemfiles/ruby_${version}.gemfile.lock"
|
|
10
|
-
if [[ -f $lockfile ]]; then rm $lockfile; fi
|
|
11
|
-
|
|
12
|
-
# Change Ruby Version
|
|
13
|
-
echo ${version} > ./.ruby-version && rbenv rehash
|
|
14
|
-
|
|
15
|
-
# Bundle install
|
|
16
|
-
if [[ $version == "2.3.3" ]]; then
|
|
17
|
-
BUNDLE_GEMFILE=./gemfiles/ruby_${version}.gemfile bundle _1.17.3_ install --path vendor/bundle && report+=("ruby-${version}: $?")
|
|
18
|
-
else
|
|
19
|
-
BUNDLE_GEMFILE=./gemfiles/ruby_${version}.gemfile bundle install --path vendor/bundle && report+=("ruby-${version}: $?")
|
|
20
|
-
fi
|
|
21
|
-
if [ $? -ne 0 ]; then report+=("ruby-${version}: 1 (failed)");fi
|
|
22
|
-
|
|
23
|
-
echo "== End for Ruby Version: ${version} =="
|
|
24
|
-
done
|
|
25
|
-
|
|
26
|
-
# Display report
|
|
27
|
-
echo "===== Bundle install for All Support Ruby Result ====="
|
|
28
|
-
for result in "${report[@]}"; do
|
|
29
|
-
echo $result
|
|
30
|
-
done
|
|
31
|
-
echo "======================================================"
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
#!/usr/local/bin/bash
|
|
2
|
-
|
|
3
|
-
# Rspec each All Support Ruby
|
|
4
|
-
declare -a report
|
|
5
|
-
for version in $@; do
|
|
6
|
-
echo "== Rspec for Ruby Version: ${version} =="
|
|
7
|
-
|
|
8
|
-
# Change Ruby Version
|
|
9
|
-
echo ${version} > ./.ruby-version && rbenv rehash
|
|
10
|
-
|
|
11
|
-
# Rspec
|
|
12
|
-
if [[ $version == "2.3.3" ]];then
|
|
13
|
-
BUNDLE_GEMFILE=./gemfiles/ruby_${version}.gemfile bundle _1.17.3_ exec rspec --format progress && report+=("ruby-${version}: $?")
|
|
14
|
-
else
|
|
15
|
-
BUNDLE_GEMFILE=./gemfiles/ruby_${version}.gemfile bundle exec rspec --format progress && report+=("ruby-${version}: $?")
|
|
16
|
-
fi
|
|
17
|
-
if [ $? -ne 0 ]; then report+=("ruby-${version}: 1 (failed)");fi
|
|
18
|
-
|
|
19
|
-
echo "== End for Ruby Version: ${version} =="
|
|
20
|
-
done
|
|
21
|
-
|
|
22
|
-
# Display report
|
|
23
|
-
echo "===== Rspec for All Support Ruby Result ====="
|
|
24
|
-
for result in "${report[@]}"; do
|
|
25
|
-
echo $result
|
|
26
|
-
done
|
|
27
|
-
echo "============================================="
|
data/docs/.nojekyll
DELETED
|
File without changes
|
data/docs/README.md
DELETED
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
# R2-OAS
|
|
2
|
-
|
|
3
|
-
[](https://badge.fury.io/rb/r2-oas)
|
|
4
|
-
[](https://travis-ci.org/yukihirop/r2-oas)
|
|
5
|
-
[](https://coveralls.io/github/yukihirop/r2-oas)
|
|
6
|
-
[](https://codeclimate.com/github/yukihirop/r2-oas/maintainability)
|
|
7
|
-
|
|
8
|
-
Generate api docment(OpenAPI) side only from `Rails` routing.
|
|
9
|
-
|
|
10
|
-
Provides a rake command to help `generate` , `view` , and `edit` OpenAPI documents.
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
bundle exec rake routes:oas:docs # generate
|
|
14
|
-
bundle exec rake routes:oas:ui # view
|
|
15
|
-
bundle exec rake routes:oas:editor # edit
|
|
16
|
-
bundle exec rake routes:oas:monitor # monitor
|
|
17
|
-
bundle exec rake routes:oas:dist # distribute
|
|
18
|
-
bundle exec rake routes:oas:clean # clean
|
|
19
|
-
bundle exec rake routes:oas:analyze # analyze
|
|
20
|
-
bundle exec rake routes:oas:deploy # deploy
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## 💎 Installation
|
|
24
|
-
|
|
25
|
-
Add this line to your application's Gemfile:
|
|
26
|
-
|
|
27
|
-
```ruby
|
|
28
|
-
group :development do
|
|
29
|
-
gem 'r2-oas'
|
|
30
|
-
end
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
And then execute:
|
|
34
|
-
|
|
35
|
-
$ bundle
|
|
36
|
-
|
|
37
|
-
Or install it yourself as:
|
|
38
|
-
|
|
39
|
-
$ gem install r2-oas
|
|
40
|
-
|
|
41
|
-
## 🔦 Requirements
|
|
42
|
-
|
|
43
|
-
If you want to view with `Swagger UI` or edit with `Swagger Editor`, This gem needs the following:
|
|
44
|
-
|
|
45
|
-
- [`swaggerapi/swagger-ui:latest` docker image](https://hub.docker.com/r/swaggerapi/swagger-ui/)
|
|
46
|
-
- [`swaggerapi/swagger-editor:latest` docker image](https://hub.docker.com/r/swaggerapi/swagger-editor/)
|
|
47
|
-
- [`chromedriver`](http://chromedriver.chromium.org/downloads)
|
|
48
|
-
|
|
49
|
-
If you do not have it download as below.
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
$ docker pull swaggerapi/swagger-editor:latest
|
|
53
|
-
$ docker pull swaggerapi/swagger-ui:latest
|
|
54
|
-
$ brew cask install chromedriver
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## 🚀 Tutorial
|
|
58
|
-
|
|
59
|
-
After requiring a gem,
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
bundle exec routes:oas:docs
|
|
63
|
-
bundle exec routes:oas:editor
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
#### Generate docs
|
|
67
|
-
|
|
68
|
-

|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
#### Edit docs
|
|
72
|
-
|
|
73
|
-

|
|
74
|
-
|
|
75
|
-
## 📖 Usage
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
You can execute the following command in the root directory of rails.
|
|
79
|
-
|
|
80
|
-
```bash
|
|
81
|
-
$ # Generate docs
|
|
82
|
-
$ bundle exec rake routes:oas:docs # Generate docs
|
|
83
|
-
$ PATHS_FILE="oas_docs/schema/paths/api/v1/task.yml" bundle exec rake routes:oas:docs # Generate docs by specify unit paths
|
|
84
|
-
|
|
85
|
-
$ # Start swagger editor
|
|
86
|
-
$ bundle exec rake routes:oas:editor # Start swagger editor
|
|
87
|
-
$ PATHS_FILE="oas_docs/schema/paths/api/v1/task.yml" bundle exec rake routes:oas:editor # Start swagger editor by specify unit paths
|
|
88
|
-
$ # Start swagger ui
|
|
89
|
-
$ bundle exec rake routes:oas:ui # Start swagger ui
|
|
90
|
-
$ PATHS_FILE="oas_docs/schema/paths/api/v1/task.yml" bundle exec rake routes:oas:ui # Start swagger ui by specify unit paths
|
|
91
|
-
$ # Monitor swagger document
|
|
92
|
-
$ bundle exec rake routes:oas:monitor # Monitor swagger document
|
|
93
|
-
$ PATHS_FILE="oas_docs/schema/paths/api/v1/task.yml" bundle exec rake routes:oas:monitor # Monitor swagger by specify unit paths
|
|
94
|
-
|
|
95
|
-
$ # Analyze docs
|
|
96
|
-
$ OAS_FILE="~/Desktop/swagger.yml" bundle exec rake routes:oas:analyze
|
|
97
|
-
$ # Clean docs
|
|
98
|
-
$ bundle exec rake routes:oas:clean
|
|
99
|
-
$ # Deploy docs
|
|
100
|
-
$ bundle exec rake routes:oas:deploy
|
|
101
|
-
$ # Distribute swagger document
|
|
102
|
-
$ bundle exec rake routes:oas:dist
|
|
103
|
-
$ # Distribute swagger document
|
|
104
|
-
$ PATHS_FILE="oas_docs/schema/paths/api/v1/task.yml" bundle exec rake routes:oas:dist # Distribute swagger document by specify unit paths
|
|
105
|
-
|
|
106
|
-
# Display paths list
|
|
107
|
-
$ bundle exec rake routes:oas:paths_ls
|
|
108
|
-
# Display paths stats
|
|
109
|
-
$ bundle exec rake routes:oas:paths_stats
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
## ❤️ Support Rails Version
|
|
113
|
-
|
|
114
|
-
- Rails (>= 4.2.5.1)
|
|
115
|
-
|
|
116
|
-
## ❤️ Support Ruby Version
|
|
117
|
-
|
|
118
|
-
- Ruby (>= 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin18])
|
|
119
|
-
|
|
120
|
-
## ❤️ Support Rouging
|
|
121
|
-
|
|
122
|
-
- Rails Engine Routing
|
|
123
|
-
- Rails Normal Routing
|
|
124
|
-
|
|
125
|
-
## ❗️ Convention over Configuration (CoC)
|
|
126
|
-
|
|
127
|
-
- `tag name` represents `controller name` and determine `paths file name`.
|
|
128
|
-
- For example, If `controller name` is `Api::V1::UsersController`, `tag_name` is `api/v1/user`. and `paths file name` is `api/v1/user.yml`
|
|
129
|
-
|
|
130
|
-
- `_` of `components/{schemas,requestBodies, ...} name` convert `/` when save file.
|
|
131
|
-
- For example, If `components/schemas name` is `Api_V1_User`, `components/schemas file name` is `api/v1/user.yml`.
|
|
132
|
-
- `_` is supposed to be used to express `namespace`.
|
|
133
|
-
- format is `Namespace1_Namespace2_Model`.
|
|
134
|
-
|
|
135
|
-
- `.` of `components/{schemas,requestBodies, ...} name` convert `/` when save file.
|
|
136
|
-
- For example, If `components/schemas name` is `api.v1.User`, `components/schemas file name` is `api/v1/user.yml`.
|
|
137
|
-
- `.` is supposed to be used to express `namespace`.
|
|
138
|
-
- format is `namespace1.namespace2.Model`.
|
|
139
|
-
|
|
140
|
-
## 🔩 CORS
|
|
141
|
-
|
|
142
|
-
Use [rack-cors](https://github.com/cyu/rack-cors) to enable CORS.
|
|
143
|
-
|
|
144
|
-
```ruby
|
|
145
|
-
require 'rack/cors'
|
|
146
|
-
use Rack::Cors do
|
|
147
|
-
allow do
|
|
148
|
-
origins '*'
|
|
149
|
-
resource '*', headers: :any, methods: [ :get, :post, :put, :delete, :options ]
|
|
150
|
-
end
|
|
151
|
-
end
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
Alternatively you can set CORS headers in a `before` block.
|
|
155
|
-
|
|
156
|
-
```ruby
|
|
157
|
-
before do
|
|
158
|
-
header['Access-Control-Allow-Origin'] = '*'
|
|
159
|
-
header['Access-Control-Request-Method'] = '*'
|
|
160
|
-
end
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
## 📝 License
|
|
164
|
-
|
|
165
|
-
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
|
166
|
-
|
|
167
|
-
## 🤝 Contributing
|
|
168
|
-
|
|
169
|
-
1. Fork it ( http://github.com/yukihirop/r2-oas/fork )
|
|
170
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
171
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
172
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
|
173
|
-
5. Create new Pull Request
|