rswag_schema_export 0.1.1 → 0.2.0

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: 663ecc311960cc8848e244d4f71790eb0a9e91da66aa820b9b673761528d4e50
4
- data.tar.gz: c693f56751d318e60fd6a8cc26f3b9568c2f35388a0b5e2771ba0eb121f021b4
3
+ metadata.gz: 56dc1566ef40b4689c9546a3f5daa0b62c5aa066f56af01de96e563fb8b796b5
4
+ data.tar.gz: 1e3c00c1812d7f1748525263f24573846064394ce34f0e9a989893cc0d7f9323
5
5
  SHA512:
6
- metadata.gz: b6c679fe76ac810612e968195d01ddd0ac754dc34b807bd49ff93d27cbbdaccd71eb96bcd7ac8d2beaac3c728077cd81675d6c21f3937530f87927a32cfeee87
7
- data.tar.gz: db33f882f45ae29bef2cffc23442bfb0179e06dd27c1c3ce9c38180a1e057283ac9eaeec6a8dc5bdc65a81cd6212a03465fe19e471b39fd78d67f66d6fbc40d9
6
+ metadata.gz: 3743c24a0de165ae785740537ec41ad3deb3aa76f00b78b354258d907d7f42e049e9fa959b0db6b597765c4f584becb393e6972367b37b3eb3cc9b4d9e7e3f93
7
+ data.tar.gz: '09ef3131b1f7ae054a69eda7b0bd57787e9c3bbfc5481cce831fc3edf2f75a0a0ab9c3749c927c77e3de0261a1fff86b1cf40a6fda2c8a6e96c595b2ae6a33a1'
data/.rubocop.yml CHANGED
@@ -9,6 +9,9 @@ Metrics/LineLength:
9
9
  Style/Documentation:
10
10
  Enabled: false
11
11
 
12
+ Metrics/MethodLength:
13
+ Enabled: false
14
+
12
15
  Lint/AmbiguousBlockAssociation:
13
16
  Enabled: false
14
17
 
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rswag_schema_export (0.1.0)
4
+ rswag_schema_export (0.1.1)
5
5
  aws-sdk-s3 (~> 1)
6
+ azure-storage-blob (~> 1.1)
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
@@ -27,21 +28,32 @@ GEM
27
28
  tzinfo (~> 1.1)
28
29
  ast (2.4.0)
29
30
  aws-eventstream (1.0.3)
30
- aws-partitions (1.184.0)
31
- aws-sdk-core (3.59.0)
31
+ aws-partitions (1.210.0)
32
+ aws-sdk-core (3.66.0)
32
33
  aws-eventstream (~> 1.0, >= 1.0.2)
33
34
  aws-partitions (~> 1.0)
34
35
  aws-sigv4 (~> 1.1)
35
36
  jmespath (~> 1.0)
36
- aws-sdk-kms (1.23.0)
37
- aws-sdk-core (~> 3, >= 3.58.0)
37
+ aws-sdk-kms (1.24.0)
38
+ aws-sdk-core (~> 3, >= 3.61.1)
38
39
  aws-sigv4 (~> 1.1)
39
- aws-sdk-s3 (1.45.0)
40
- aws-sdk-core (~> 3, >= 3.58.0)
40
+ aws-sdk-s3 (1.48.0)
41
+ aws-sdk-core (~> 3, >= 3.61.1)
41
42
  aws-sdk-kms (~> 1)
42
43
  aws-sigv4 (~> 1.1)
43
44
  aws-sigv4 (1.1.0)
44
45
  aws-eventstream (~> 1.0, >= 1.0.2)
46
+ azure-core (0.1.15)
47
+ faraday (~> 0.9)
48
+ faraday_middleware (~> 0.10)
49
+ nokogiri (~> 1.6)
50
+ azure-storage-blob (1.1.0)
51
+ azure-core (~> 0.1.13)
52
+ azure-storage-common (~> 1.0)
53
+ nokogiri (~> 1.6, >= 1.6.8)
54
+ azure-storage-common (1.1.0)
55
+ azure-core (~> 0.1.13)
56
+ nokogiri (~> 1.6, >= 1.6.8)
45
57
  builder (3.2.3)
46
58
  coderay (1.1.2)
47
59
  concurrent-ruby (1.1.5)
@@ -49,6 +61,10 @@ GEM
49
61
  diff-lcs (1.3)
50
62
  docile (1.3.2)
51
63
  erubi (1.8.0)
64
+ faraday (0.15.4)
65
+ multipart-post (>= 1.2, < 3)
66
+ faraday_middleware (0.13.1)
67
+ faraday (>= 0.7.4, < 1.0)
52
68
  i18n (1.6.0)
53
69
  concurrent-ruby (~> 1.0)
54
70
  jaro_winkler (1.5.3)
@@ -60,7 +76,8 @@ GEM
60
76
  method_source (0.9.2)
61
77
  mini_portile2 (2.4.0)
62
78
  minitest (5.11.3)
63
- nokogiri (1.10.3)
79
+ multipart-post (2.1.1)
80
+ nokogiri (1.10.4)
64
81
  mini_portile2 (~> 2.4.0)
65
82
  parallel (1.17.0)
66
83
  parser (2.6.3.0)
data/README.md CHANGED
@@ -20,6 +20,7 @@ And then execute:
20
20
  Or install it yourself as:
21
21
 
22
22
  $ gem install rswag_schema_export
23
+ $ rails g rswag_schema_export:install
23
24
 
24
25
  ## Usage
25
26
 
@@ -44,7 +45,7 @@ stages:
44
45
 
45
46
  ```diff
46
47
  # config/deploy.rb
47
- + folders = %w[tmp/swagger]
48
+ + folders = %w[swagger]
48
49
  namespace :deploy do
49
50
  after :restart, :clear_cache do
50
51
  on roles(:web), in: :groups, limit: 3, wait: 10 do
@@ -60,12 +61,17 @@ end
60
61
  Set up ENVIRONMENT VARIABLES on your CI
61
62
 
62
63
  ```bash
63
- # Required
64
- RSWAG_SCHEMA_PATH='' # Example: tmp/swagger/swagger.json
65
- RSWAG_ACCESS_KEY_ID='' # Example: XXXXXXXXXX
66
- RSWAG_SECRET_ACCESS_KEY='' # Example: XXXXXXXXXXXXXXXXXXXXX
67
- RSWAG_REGION='' # Example: us-west-1
68
- RSWAG_BUCKET='' # Example: bucket-name
64
+ # Required for AWS
65
+ RSWAG_AWS_ACCESS_KEY_ID='' # Example: XXXXXXXXXX
66
+ RSWAG_AWS_SECRET_ACCESS_KEY='' # Example: XXXXXXXXXXXXXXXXXXXXX
67
+ RSWAG_AWS_REGION='' # Example: us-west-1
68
+ RSWAG_AWS_BUCKET='' # Example: bucket-name
69
+
70
+ # Required for AZURE
71
+
72
+ RSWAG_AZURE_STORAGE_ACCOUNT_NAME='' # Example: XXXXX
73
+ RSWAG_AZURE_STORAGE_ACCESS_KEY='' # Example: XXXXXXXXXXXXXXXXXXXXX
74
+ RSWAG_AZURE_CONTAINER='' # Example: continter-name
69
75
 
70
76
  # Optional
71
77
  STAGE='' # Default: develop
@@ -74,23 +80,23 @@ APP_NAME='' # Default: app
74
80
 
75
81
  ## Gitlab Variables
76
82
 
77
- ![image](https://user-images.githubusercontent.com/2664467/60773983-c69bdf80-a115-11e9-9f46-57d835ba4561.png)
78
-
83
+ ![image](https://user-images.githubusercontent.com/2664467/64493266-bc699f00-d286-11e9-8827-e99d0eada9ce.png)
79
84
 
80
- ## rswag-api
85
+ ## rswag_schema_export
81
86
  ```diff
82
- # config/initializers/rswag_api.rb
83
- Rswag::Api.configure do |c|
84
- + c.swagger_root = Rails.root.to_s + '/tmp/swagger'
87
+ # config/initializers/rswag_schema_export.rb
88
+ RswagSchemaExport.configure do |c|
89
+ + c.schemas = ['swagger/client/swagger.json', 'swagger/backoffice/swagger.json']
90
+ + c.client = :aws
85
91
  end
92
+
86
93
  ```
87
94
 
88
- ## rswag-specs
95
+ ## rswag-api
89
96
  ```diff
90
- # spec/swagger_helper.rb
91
-
92
- RSpec.configure do |config|
93
- + config.swagger_root = Rails.root.to_s + '/tmp/swagger'
97
+ # config/initializers/rswag_api.rb
98
+ Rswag::Api.configure do |c|
99
+ + c.swagger_root = Rails.root.to_s + '/swagger'
94
100
  end
95
101
  ```
96
102
 
@@ -0,0 +1,11 @@
1
+ require "rails/generators"
2
+
3
+ module RswagSchemaExport
4
+ class InstallGenerator < Rails::Generators::Base
5
+ source_root File.expand_path("templates", __dir__)
6
+
7
+ def add_initializer
8
+ template("rswag_schema_export.rb", "config/initializers/rswag_schema_export.rb")
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ RswagSchemaExport.configure do |c|
2
+ # Set up your schemas
3
+ #
4
+ # c.schemas = ['swagger/client/swagger.json', 'swagger/backoffice/swagger.json']
5
+ #
6
+ # Set up your cloud provider - (:aws, :azure) :aws by default
7
+ #
8
+ # c.client = :aws
9
+ end
@@ -1,7 +1,16 @@
1
1
  require "rswag_schema_export/version"
2
+ require "rswag_schema_export/configuration"
3
+ require "rswag_schema_export/client"
2
4
  require "rswag_schema_export/railtie" if defined?(Rails)
3
5
  require "rswag_schema_export/schema_export"
4
6
  require "rswag_schema_export/schema_import"
5
7
 
6
8
  module RswagSchemaExport
9
+ def self.configure
10
+ yield(config)
11
+ end
12
+
13
+ def self.config
14
+ @config ||= Configuration.new
15
+ end
7
16
  end
@@ -0,0 +1,91 @@
1
+ require "azure/storage/blob"
2
+ require "aws-sdk-s3"
3
+
4
+ module RswagSchemaExport
5
+ class Client
6
+ attr_reader :stage, :app_name
7
+
8
+ def initialize(stage)
9
+ @app_name = ENV["APP_NAME"] || "app"
10
+ @stage = stage || "develop"
11
+ end
12
+
13
+ def client # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity:
14
+ if aws_client?
15
+ abort("RSWAG_AWS_ACCESS_KEY_ID is not defined") unless ENV["RSWAG_AWS_ACCESS_KEY_ID"]
16
+ abort("RSWAG_AWS_SECRET_ACCESS_KEY is not defined") unless ENV["RSWAG_AWS_SECRET_ACCESS_KEY"]
17
+ abort("RSWAG_AWS_REGION is not defined") unless ENV["RSWAG_AWS_REGION"]
18
+ abort("RSWAG_AWS_BUCKET is not defined") unless ENV["RSWAG_AWS_BUCKET"]
19
+
20
+ @client ||= Aws::S3::Resource.new(access_key_id: ENV["RSWAG_AWS_ACCESS_KEY_ID"],
21
+ secret_access_key: ENV["RSWAG_AWS_SECRET_ACCESS_KEY"],
22
+ region: ENV["RSWAG_AWS_REGION"])
23
+ else
24
+ abort("RSWAG_AZURE_STORAGE_ACCOUNT_NAME is not defined") unless ENV["RSWAG_AZURE_STORAGE_ACCOUNT_NAME"]
25
+ abort("RSWAG_AZURE_STORAGE_ACCESS_KEY is not defined") unless ENV["RSWAG_AZURE_STORAGE_ACCESS_KEY"]
26
+ abort("RSWAG_AZURE_CONTAINER is not defined") unless ENV["RSWAG_AZURE_CONTAINER"]
27
+
28
+ @client = Azure::Storage::Blob::BlobService.create(
29
+ storage_account_name: ENV["RSWAG_AZURE_STORAGE_ACCOUNT_NAME"],
30
+ storage_access_key: ENV["RSWAG_AZURE_STORAGE_ACCESS_KEY"]
31
+ )
32
+ end
33
+ end
34
+
35
+ def upload_file(key, file)
36
+ if aws_client?
37
+ client.bucket(ENV["RSWAG_AWS_BUCKET"]).object(key).upload_file(file)
38
+ else
39
+ client.create_block_blob(ENV["RSWAG_AZURE_CONTAINER"], key, ::File.open(file, &:read))
40
+ end
41
+ end
42
+
43
+ def fetch_versions(schema_id)
44
+ if aws_client?
45
+ bucket.objects(prefix: "schemas/#{app_name}/#{stage}_#{schema_id}/versions").collect(&:key)
46
+ else
47
+ prefix = "schemas/#{app_name}/#{stage}_#{schema_id}/versions"
48
+ client.list_blobs(ENV["RSWAG_AZURE_CONTAINER"], prefix: prefix).collect(&:name)
49
+ end
50
+ end
51
+
52
+ def copy_latest_version_to_root(last_schema_key, schema_id)
53
+ if aws_client?
54
+ bucket.object(last_schema_key)
55
+ .copy_to("#{ENV['RSWAG_BUCKET']}/schemas/#{app_name}/#{stage}_#{schema_id}/schema.json")
56
+ else
57
+ client.copy_blob(ENV["RSWAG_AZURE_CONTAINER"], "schemas/#{app_name}/#{stage}_#{schema_id}/schema.json",
58
+ ENV["RSWAG_AZURE_CONTAINER"], last_schema_key)
59
+ end
60
+ end
61
+
62
+ def download_file(schema_id, path)
63
+ if aws_client?
64
+ bucket.object("schemas/#{app_name}/#{stage}_#{schema_id}/schema.json").download_file(path)
65
+ else
66
+ _blob, content = client.get_blob(ENV["RSWAG_AZURE_CONTAINER"],
67
+ "schemas/#{app_name}/#{stage}_#{schema_id}/schema.json")
68
+ ::File.open(path, "wb") { |f| f.write(content) }
69
+ end
70
+ end
71
+
72
+ def clean(versions)
73
+ old_versions = versions - versions.sort.last(5)
74
+ if aws_client?
75
+ old_versions.each { |key| bucket.object(key).delete }
76
+ else
77
+ old_versions.each { |key| client.delete_blob(ENV["RSWAG_AZURE_CONTAINER"], key) }
78
+ end
79
+ end
80
+
81
+ private
82
+
83
+ def bucket
84
+ @bucket ||= client.bucket(ENV["RSWAG_AWS_BUCKET"]) if aws_client?
85
+ end
86
+
87
+ def aws_client?
88
+ RswagSchemaExport.config.client&.to_sym == :aws
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,9 @@
1
+ module RswagSchemaExport
2
+ class Configuration
3
+ attr_accessor :schemas, :client
4
+
5
+ def initialize
6
+ @client = :aws
7
+ end
8
+ end
9
+ end
@@ -1,31 +1,27 @@
1
1
  module RswagSchemaExport
2
2
  class Export
3
- def run
4
- abort("RSWAG_SCHEMA_PATH is not defined. Example: tmp/swagger/swagger.json") unless ENV["RSWAG_SCHEMA_PATH"]
5
- abort("RSWAG_ACCESS_KEY_ID is not defined") unless ENV["RSWAG_ACCESS_KEY_ID"]
6
- abort("RSWAG_SECRET_ACCESS_KEY is not defined") unless ENV["RSWAG_SECRET_ACCESS_KEY"]
7
- abort("RSWAG_REGION is not defined") unless ENV["RSWAG_REGION"]
8
- abort("RSWAG_BUCKET is not defined") unless ENV["RSWAG_BUCKET"]
3
+ def run # rubocop:disable Metrics/AbcSize
4
+ abort("Set up RswagSchemaExport.config.schemas") unless RswagSchemaExport.config.schemas
9
5
 
10
- stage = ENV["STAGE"] || "develop"
11
- app_name = ENV["APP_NAME"] || "app"
6
+ RswagSchemaExport.config.schemas.map do |schema|
7
+ next if File.file?(schema)
12
8
 
13
- unless File.file?(ENV["RSWAG_SCHEMA_PATH"])
14
- message = "Not found schema at #{ENV['RSWAG_SCHEMA_PATH']}.
15
- For generate schema run: RAILS_ENV=test rake rswag:specs:swaggerize"
9
+ message = "Not found schema at #{schema}.
10
+ For generate schema run: RAILS_ENV=test rake rswag:specs:swaggerize"
16
11
  abort(message)
17
12
  end
18
13
 
19
14
  begin
20
- s3 = Aws::S3::Resource.new(access_key_id: ENV["RSWAG_ACCESS_KEY_ID"],
21
- secret_access_key: ENV["RSWAG_SECRET_ACCESS_KEY"],
22
- region: ENV["RSWAG_REGION"])
15
+ client = ::RswagSchemaExport::Client.new(ENV["STAGE"])
16
+ RswagSchemaExport.config.schemas.map do |schema|
17
+ schema_id = schema.gsub(/[^a-zA-Z0-9\-]/, "_")
18
+ key = "schemas/#{client.app_name}/#{client.stage}_#{schema_id}/versions/#{Time.now.getutc.iso8601}.json"
19
+ # Upload latest version to the cloud
20
+ client.upload_file(key, schema)
23
21
 
24
- key = "schemas/#{app_name}/#{stage}_schemas/versions/#{Time.now.getutc.iso8601}.json"
25
- # Download latest version to app
26
- s3.bucket(ENV["RSWAG_BUCKET"]).object(key).upload_file(ENV["RSWAG_SCHEMA_PATH"])
27
-
28
- puts("Schema has been successfully exported. Stage: #{stage} | Key: #{key}")
22
+ puts("Schema has been successfully exported. Stage: #{client.stage} | Key: #{key}")
23
+ end
24
+ puts("Export finished")
29
25
  rescue StandardError => e
30
26
  abort(e.message)
31
27
  end
@@ -1,39 +1,27 @@
1
- require "aws-sdk-s3"
2
-
3
1
  module RswagSchemaExport
4
2
  class Import
5
- def run(stage = "develop")
6
- abort("RSWAG_SCHEMA_PATH is not defined. Example: tmp/swagger/swagger.json") unless ENV["RSWAG_SCHEMA_PATH"]
7
- abort("RSWAG_ACCESS_KEY_ID is not defined") unless ENV["RSWAG_ACCESS_KEY_ID"]
8
- abort("RSWAG_SECRET_ACCESS_KEY is not defined") unless ENV["RSWAG_SECRET_ACCESS_KEY"]
9
- abort("RSWAG_REGION is not defined") unless ENV["RSWAG_REGION"]
10
- abort("RSWAG_BUCKET is not defined") unless ENV["RSWAG_BUCKET"]
11
- app_name = ENV["APP_NAME"] || "app"
3
+ def run(stage = "develop") # rubocop:disable Metrics/AbcSize:
4
+ abort("Set up RswagSchemaExport.config.schemas") unless RswagSchemaExport.config.schemas
12
5
 
13
6
  begin
14
- s3 = Aws::S3::Resource.new(access_key_id: ENV["RSWAG_ACCESS_KEY_ID"],
15
- secret_access_key: ENV["RSWAG_SECRET_ACCESS_KEY"],
16
- region: ENV["RSWAG_REGION"])
7
+ client = ::RswagSchemaExport::Client.new(stage)
8
+ RswagSchemaExport.config.schemas.map do |schema|
9
+ schema_id = schema.gsub(/[^a-zA-Z0-9\-]/, "_")
17
10
 
18
- bucket = s3.bucket(ENV["RSWAG_BUCKET"])
19
- # Copy latest version to root
20
- versions = bucket.objects(prefix: "schemas/#{app_name}/#{stage}_schemas/versions").collect(&:key)
11
+ # Copy latest version to root
12
+ versions = client.fetch_versions(schema_id)
13
+ last_schema_key = versions.max
21
14
 
22
- last_schema_key = versions.max
23
- bucket.object(last_schema_key)
24
- .copy_to("#{ENV['RSWAG_BUCKET']}/schemas/#{app_name}/#{stage}_schemas/schema.json")
25
- # Download schema.json
26
- if block_given?
27
- bucket.object("schemas/#{app_name}/#{stage}_schemas/schema.json").download_file("schema.json")
28
- yield
29
- else
30
- bucket.object("schemas/#{app_name}/#{stage}_schemas/schema.json").download_file(ENV["RSWAG_SCHEMA_PATH"])
31
- end
32
- # Clean versions folder
33
- old_versions = versions - versions.sort.last(5)
34
- old_versions.each { |key| bucket.object(key).delete }
15
+ client.copy_latest_version_to_root(last_schema_key, schema_id)
16
+ # Download schema.json
17
+ client.download_file(schema_id, schema)
18
+ # Clean versions folder
19
+ client.clean(versions)
35
20
 
36
- puts("Schema has been successfully imported. Stage: #{stage} | Key: #{last_schema_key}")
21
+ puts("Schema has been successfully imported. Stage: #{client.stage} | Key: #{last_schema_key}")
22
+ end
23
+ yield if block_given?
24
+ puts("Import finished")
37
25
  rescue StandardError => e
38
26
  abort(e.message)
39
27
  end
@@ -6,7 +6,9 @@ namespace :rswag do
6
6
  on roles(:all) do
7
7
  stage = ENV["STAGE"] || fetch(:stage, "develop")
8
8
  RswagSchemaExport::Import.new.run(stage) do
9
- upload!("schema.json", "#{current_path}/#{ENV['RSWAG_SCHEMA_PATH']}")
9
+ RswagSchemaExport.config.shemas.map do |schema|
10
+ upload!(schema, "#{current_path}/#{schema}")
11
+ end
10
12
  end
11
13
  end
12
14
  end
@@ -1,3 +1,3 @@
1
1
  module RswagSchemaExport
2
- VERSION = "0.1.1".freeze
2
+ VERSION = "0.2.0".freeze
3
3
  end
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.require_paths = ["lib"]
21
21
 
22
22
  spec.add_dependency "aws-sdk-s3", "~> 1"
23
+ spec.add_dependency "azure-storage-blob", "~> 1.1"
23
24
 
24
25
  spec.add_development_dependency "bundler", "~> 1.17"
25
26
  spec.add_development_dependency "pry"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rswag_schema_export
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruslan Tolstov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-08 00:00:00.000000000 Z
11
+ date: 2019-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-s3
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: azure-storage-blob
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.1'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -150,8 +164,12 @@ files:
150
164
  - Rakefile
151
165
  - bin/console
152
166
  - bin/setup
167
+ - lib/generators/rswag_schema_export/install/install_generator.rb
168
+ - lib/generators/rswag_schema_export/install/templates/rswag_schema_export.rb
153
169
  - lib/rswag_schema_export.rb
154
170
  - lib/rswag_schema_export/capistrano.rb
171
+ - lib/rswag_schema_export/client.rb
172
+ - lib/rswag_schema_export/configuration.rb
155
173
  - lib/rswag_schema_export/railtie.rb
156
174
  - lib/rswag_schema_export/schema_export.rb
157
175
  - lib/rswag_schema_export/schema_import.rb