swagalicious 0.1.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 941a558739b2079027c117ccea67ffc90c7a21f682811ab817a739ef0ea93d82
4
- data.tar.gz: 275cce80dedbfcaa5b5e76d01499fe18babcc7e30a948806ad95df1cea46d475
3
+ metadata.gz: a5c37b19faf98f5e71159ac6285f997cb4387f8e4647087f19d33546fee346a7
4
+ data.tar.gz: fdab1f1246d2eb02a3d8279f6db96e5f3b067ebfef940c5e9cbb558525b60680
5
5
  SHA512:
6
- metadata.gz: 2e8f90a288217b8e27e85411194a73a7f5d1bbe7bd8881a1f086c11319b8ee9a832143bc9c610a8398fb11051484be70f828f3a1625d5c2180d5e1d1194e5121
7
- data.tar.gz: 181ff6d1a9dcab5b13499f648b75299f4ab6321c2ea4d65956a94d4bd8b62f90d8e049c771629ed457ca828635f7f90ab35f9bba630b437d0ebb11136d0cdb19
6
+ metadata.gz: 2197185fc859b4cc8912aeb8467c3dd3097df510b0ba790ee194d1a22317479be3e1a635e21eac7d27803d1e59a2ef6bb42c958eea555dbb8436389d19a67043
7
+ data.tar.gz: 47d027e1184e3e7e74a6896b3d56f04a1ea096b287b964b5578489fe522b61cea4125380ae96f1f368e295b621fa98df6fddbc92bb9cc3306eb830dd0a9a8d35
@@ -1,50 +1,81 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- swagalicious (0.1.0)
5
- faraday (~> 1.0.1)
4
+ swagalicious (0.3.1)
5
+ faraday (~> 1.3.0)
6
6
  json-schema (~> 2.8.1)
7
- oj (~> 3.10.14)
8
- rack-test (~> 1.1.0)
7
+ oj (~> 3.11.0)
8
+ rspec (~> 3.10.0)
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
+ activesupport (6.1.1)
14
+ concurrent-ruby (~> 1.0, >= 1.0.2)
15
+ i18n (>= 1.6, < 2)
16
+ minitest (>= 5.1)
17
+ tzinfo (~> 2.0)
18
+ zeitwerk (~> 2.3)
13
19
  addressable (2.7.0)
14
20
  public_suffix (>= 2.0.2, < 5.0)
21
+ byebug (11.1.3)
22
+ coderay (1.1.3)
23
+ concurrent-ruby (1.1.8)
15
24
  diff-lcs (1.4.4)
16
- faraday (1.0.1)
25
+ factory_bot (6.1.0)
26
+ activesupport (>= 5.0.0)
27
+ faraday (1.3.0)
28
+ faraday-net_http (~> 1.0)
17
29
  multipart-post (>= 1.2, < 3)
30
+ ruby2_keywords
31
+ faraday-net_http (1.0.1)
32
+ i18n (1.8.7)
33
+ concurrent-ruby (~> 1.0)
18
34
  json-schema (2.8.1)
19
35
  addressable (>= 2.4)
36
+ method_source (1.0.0)
37
+ minitest (5.14.3)
20
38
  multipart-post (2.1.1)
21
- oj (3.10.14)
39
+ oj (3.11.0)
40
+ pry (0.13.1)
41
+ coderay (~> 1.1)
42
+ method_source (~> 1.0)
43
+ pry-byebug (3.9.0)
44
+ byebug (~> 11.0)
45
+ pry (~> 0.13.0)
22
46
  public_suffix (4.0.6)
23
47
  rack (2.2.3)
24
48
  rack-test (1.1.0)
25
49
  rack (>= 1.0, < 3)
26
50
  rake (12.3.3)
27
- rspec (3.9.0)
28
- rspec-core (~> 3.9.0)
29
- rspec-expectations (~> 3.9.0)
30
- rspec-mocks (~> 3.9.0)
31
- rspec-core (3.9.2)
32
- rspec-support (~> 3.9.3)
33
- rspec-expectations (3.9.2)
51
+ rspec (3.10.0)
52
+ rspec-core (~> 3.10.0)
53
+ rspec-expectations (~> 3.10.0)
54
+ rspec-mocks (~> 3.10.0)
55
+ rspec-core (3.10.1)
56
+ rspec-support (~> 3.10.0)
57
+ rspec-expectations (3.10.1)
34
58
  diff-lcs (>= 1.2.0, < 2.0)
35
- rspec-support (~> 3.9.0)
36
- rspec-mocks (3.9.1)
59
+ rspec-support (~> 3.10.0)
60
+ rspec-mocks (3.10.1)
37
61
  diff-lcs (>= 1.2.0, < 2.0)
38
- rspec-support (~> 3.9.0)
39
- rspec-support (3.9.3)
62
+ rspec-support (~> 3.10.0)
63
+ rspec-support (3.10.1)
64
+ ruby2_keywords (0.0.4)
65
+ tzinfo (2.0.4)
66
+ concurrent-ruby (~> 1.0)
67
+ zeitwerk (2.4.2)
40
68
 
41
69
  PLATFORMS
42
70
  ruby
43
71
 
44
72
  DEPENDENCIES
73
+ factory_bot (~> 6.1.0)
74
+ pry-byebug (~> 3.9.0)
75
+ rack-test (~> 1.1.0)
45
76
  rake (~> 12.0)
46
77
  rspec (~> 3.0)
47
78
  swagalicious!
48
79
 
49
80
  BUNDLED WITH
50
- 2.1.2
81
+ 2.2.6
data/README.md CHANGED
@@ -27,13 +27,11 @@ Add the following to your `spec_helper.rb` or add a new `swagger_helper.rb`
27
27
  ```ruby
28
28
  require 'swagalicious`
29
29
 
30
- DEFINITIONS = Oj.load(File.read(File.expand_path("docs/definitions.json", __dir__))).freeze
31
-
32
30
  RSpec.configure do |c|
33
31
  c.swagger_root = "public/swagger_docs" # This is the relative path where the swagger docs will be output
34
32
  c.swagger_docs = {
35
33
  "path/to/swagger_doc.json" => {
36
- swagger: "3.0",
34
+ openapi: "3.0.3",
37
35
  basePath: "/api/",
38
36
  version: "v1",
39
37
  info: {
@@ -57,7 +55,7 @@ end
57
55
 
58
56
  ## Contributing
59
57
 
60
- Bug reports and pull requests are welcome on GitHub at https://github.com/eugene@xtreme-computers.net/swagalicious.
58
+ Bug reports and pull requests are welcome on GitHub at https://github.com/ehowe/swagalicious.
61
59
 
62
60
 
63
61
  ## License
@@ -1,9 +1,17 @@
1
1
  class Hash
2
- def deep_merge!(other_hash)
3
- self.merge(other_hash) do |key, oldval, newval|
4
- oldval = oldval.to_hash if oldval.respond_to?(:to_hash)
5
- newval = newval.to_hash if newval.respond_to?(:to_hash)
6
- oldval.class.to_s == "Hash" && newval.class.to_s == "Hash" ? oldval.deep_merge(newval) : newval
2
+ def deep_merge(other_hash, &block)
3
+ dup.deep_merge!(other_hash)
4
+ end
5
+
6
+ def deep_merge!(other_hash, &block)
7
+ merge!(other_hash) do |key, this_val, other_val|
8
+ if this_val.is_a?(Hash) && other_val.is_a?(Hash)
9
+ this_val.deep_merge(other_val, &block)
10
+ elsif block_given?
11
+ block.call(key, this_val, other_val)
12
+ else
13
+ other_val
14
+ end
7
15
  end
8
16
  end
9
17
 
@@ -1,17 +1,21 @@
1
1
  require "rspec/core"
2
2
 
3
- require_relative "swagalicious/version"
3
+ require_relative "./swagalicious/version"
4
4
 
5
- module Swagalicious
5
+ class Swagalicious
6
6
  class Error < StandardError; end
7
7
 
8
- require_relative "swagalicious/configuration"
9
- require_relative "swagalicious/example_group_helpers"
10
- require_relative "swagalicious/example_helpers"
11
- require_relative "swagalicious/extended_schema"
12
- require_relative "swagalicious/request_factory"
13
- require_relative "swagalicious/response_validator"
14
- require_relative "swagalicious/swagger_formatter"
8
+ def self.config
9
+ @config ||= Swagalicious::Configuration.new(RSpec.configuration)
10
+ end
11
+
12
+ require_relative "./swagalicious/configuration"
13
+ require_relative "./swagalicious/example_group_helpers"
14
+ require_relative "./swagalicious/example_helpers"
15
+ require_relative "./swagalicious/extended_schema"
16
+ require_relative "./swagalicious/request_factory"
17
+ require_relative "./swagalicious/response_validator"
18
+ require_relative "./swagalicious/swagger_formatter"
15
19
 
16
20
  ::RSpec::Core::ExampleGroup.define_example_group_method :path
17
21
 
@@ -23,8 +27,4 @@ module Swagalicious
23
27
  c.extend Swagalicious::ExampleGroupHelpers, type: :doc
24
28
  c.include Swagalicious::ExampleHelpers, type: :doc
25
29
  end
26
-
27
- def self.config
28
- @config ||= Swagalicious::Configuration.new(RSpec.configuration)
29
- end
30
30
  end
@@ -1,4 +1,4 @@
1
- module Swagalicious
1
+ class Swagalicious
2
2
  class ConfigurationError < StandardError; end
3
3
 
4
4
  class Configuration
@@ -1,4 +1,4 @@
1
- module Swagalicious
1
+ class Swagalicious
2
2
  module ExampleGroupHelpers
3
3
  def path(template, metadata={}, &block)
4
4
  metadata[:path_item] = { template: template }
@@ -5,7 +5,7 @@ require "oj"
5
5
 
6
6
  require_relative "response_validator"
7
7
 
8
- module Swagalicious
8
+ class Swagalicious
9
9
  module ExampleHelpers
10
10
  include Rack::Test::Methods
11
11
 
@@ -49,12 +49,22 @@ module Swagalicious
49
49
 
50
50
  @body = Oj.load(body, symbol_keys: true)
51
51
 
52
+ metadata[:paths] ||= []
53
+ metadata[:paths] << request[:path]
54
+
52
55
  if request[:payload]
53
56
  metadata[:response][:request] = Oj.load(request[:payload])
54
57
  end
55
58
 
56
- metadata[:response][:examples] ||= {}
57
- metadata[:response][:examples]["application/json"] = @body
59
+ metadata[:response][:examples] ||= {}
60
+
61
+ mime_types = metadata[:response][:produces] || ["application/json"]
62
+ full_title = metadata[:swagger_example_name] || "#{metadata[:operation][:summary]}: #{metadata[:description]}"
63
+
64
+ mime_types.each do |mime_type|
65
+ metadata[:response][:examples][mime_type] ||= {}
66
+ metadata[:response][:examples][mime_type][full_title] = @body
67
+ end
58
68
 
59
69
  # Validates response matches the proper schema
60
70
  Swagalicious::ResponseValidator.new.validate!(metadata, response)
@@ -1,6 +1,6 @@
1
1
  require "json-schema"
2
2
 
3
- module Swagalicious
3
+ class Swagalicious
4
4
  class ExtendedSchema < JSON::Schema::Draft4
5
5
  def initialize
6
6
  super
@@ -1,7 +1,7 @@
1
1
  require "faraday"
2
2
  require "faraday/adapter/rack"
3
3
 
4
- module Swagalicious
4
+ class Swagalicious
5
5
  class RequestFactory
6
6
  def initialize(config = ::Swagalicious.config)
7
7
  @config = config
@@ -1,6 +1,6 @@
1
1
  require "json"
2
2
 
3
- module Swagalicious
3
+ class Swagalicious
4
4
  class UnexpectedResponse < StandardError; end
5
5
 
6
6
  class ResponseValidator
@@ -44,7 +44,7 @@ module Swagalicious
44
44
  .merge(schemas)
45
45
 
46
46
  errors = JSON::Validator.fully_validate(validation_schema, body)
47
- raise UnexpectedResponse, "Expected response body to match schema: #{errors[0]}" if errors.any?
47
+ raise UnexpectedResponse, "Expected response body to match schema: #{errors.join(", ")}" unless errors.empty?
48
48
  end
49
49
 
50
50
  def definitions_or_component_schemas(swagger_doc, version)
@@ -2,67 +2,71 @@
2
2
 
3
3
  require_relative "../core/ext/hash"
4
4
 
5
- module Swagalicious
5
+ class Swagalicious
6
6
  class SwaggerFormatter
7
- RSpec::Core::Formatters.register self, :example_group_finished, :stop
7
+ RSpec::Core::Formatters.register self, :stop
8
8
 
9
- def initialize(output, config = Swagalicious.config)
9
+ def config
10
+ @config ||= Swagalicious.config
11
+ end
12
+
13
+ def initialize(output, config = nil)
10
14
  @output = output
11
15
  @config = config
12
16
 
13
17
  @output.puts "Generating Swagger docs ..."
14
18
  end
15
19
 
16
- def example_group_finished(notification)
17
- metadata = notification.group.metadata
18
-
19
- # !metadata[:document] won"t work, since nil means we should generate
20
- # docs.
21
- return if metadata[:document] == false
22
- return unless metadata.key?(:response)
23
-
24
- swagger_doc = @config.get_swagger_doc(metadata[:swagger_doc])
25
-
26
- # This is called multiple times per file!
27
- # metadata[:operation] is also re-used between examples within file
28
- # therefore be careful NOT to modify its content here.
29
- upgrade_request_type!(metadata)
30
- upgrade_servers!(swagger_doc)
31
- upgrade_oauth!(swagger_doc)
32
- upgrade_response_produces!(swagger_doc, metadata)
33
-
34
- swagger_doc.deep_merge!(metadata_to_swagger(metadata))
20
+ def merge_metadata_to_document(doc, example)
21
+ metadata = example.metadata
22
+ # !metadata[:document] won"t work, since nil means we should generate
23
+ # docs.
24
+ return {} if metadata[:document] == false
25
+ return {} unless metadata.key?(:response)
26
+ # This is called multiple times per file!
27
+ # metadata[:operation] is also re-used between examples within file
28
+ # therefore be careful NOT to modify its content here.
29
+ upgrade_servers!(doc)
30
+ upgrade_oauth!(doc)
31
+ upgrade_response_produces!(doc, metadata)
32
+ upgrade_request_type!(metadata)
33
+
34
+ unless doc_version(doc).start_with?("2")
35
+ doc[:paths]&.each_pair do |_k, v|
36
+ v.each_pair do |_verb, value|
37
+ is_hash = value.is_a?(Hash)
38
+ if is_hash && value.dig(:parameters)
39
+ schema_param = value.dig(:parameters)&.find { |p| (p[:in] == :body || p[:in] == :formData) && p[:schema] }
40
+ mime_list = value.dig(:consumes)
41
+ if value && schema_param && mime_list
42
+ value[:requestBody] = { content: {} } unless value.dig(:requestBody, :content)
43
+ mime_list.each do |mime|
44
+ value[:requestBody][:content][mime] = { schema: schema_param[:schema] }
45
+ end
46
+ end
47
+
48
+ value[:parameters].reject! { |p| p[:in] == :body || p[:in] == :formData }
49
+ end
50
+ remove_invalid_operation_keys!(value)
51
+ end
52
+ end
53
+ end
54
+
55
+ doc.deep_merge!(metadata_to_swagger(metadata))
35
56
  end
36
57
 
37
- def stop(_notification = nil)
38
- @config.swagger_docs.each do |url_path, doc|
39
- unless doc_version(doc).start_with?("2")
40
- doc[:paths]&.each_pair do |_k, v|
41
- v.each_pair do |_verb, value|
42
- is_hash = value.is_a?(Hash)
43
- if is_hash && value.dig(:parameters)
44
- schema_param = value.dig(:parameters)&.find { |p| (p[:in] == :body || p[:in] == :formData) && p[:schema] }
45
- mime_list = value.dig(:consumes)
46
- if value && schema_param && mime_list
47
- value[:requestBody] = { content: {} } unless value.dig(:requestBody, :content)
48
- mime_list.each do |mime|
49
- value[:requestBody][:content][mime] = { schema: schema_param[:schema] }
50
- end
51
- end
52
-
53
- value[:parameters].reject! { |p| p[:in] == :body || p[:in] == :formData }
54
- end
55
- remove_invalid_operation_keys!(value)
56
- end
57
- end
58
- end
58
+ def stop(notification = nil)
59
+ config.swagger_docs.each do |url_path, doc|
60
+ examples = notification.examples.select { |e| e.metadata[:swagger_doc] == url_path }
61
+
62
+ merged_doc = examples.each_with_object(doc) { |e, doc| doc = doc.deep_merge!(merge_metadata_to_document(doc, e)) }
59
63
 
60
- file_path = File.join(@config.swagger_root, url_path)
64
+ file_path = File.join(config.swagger_root, url_path)
61
65
  dirname = File.dirname(file_path)
62
66
  FileUtils.mkdir_p dirname unless File.exist?(dirname)
63
67
 
64
68
  File.open(file_path, "w") do |file|
65
- file.write(pretty_generate(doc))
69
+ file.write(pretty_generate(merged_doc))
66
70
  end
67
71
 
68
72
  @output.puts "Swagger doc generated at #{file_path}"
@@ -72,7 +76,7 @@ module Swagalicious
72
76
  private
73
77
 
74
78
  def pretty_generate(doc)
75
- if @config.swagger_format == :yaml
79
+ if config.swagger_format == :yaml
76
80
  clean_doc = yaml_prepare(doc)
77
81
  YAML.dump(clean_doc)
78
82
  else # config errors are thrown in "def swagger_format", no throw needed here
@@ -88,6 +92,19 @@ module Swagalicious
88
92
  def metadata_to_swagger(metadata)
89
93
  response_code = metadata[:response][:code]
90
94
  response = metadata[:response].reject { |k, _v| k == :code }
95
+ examples = response.delete(:examples) || []
96
+
97
+ examples.each do |mime_type, titles|
98
+ titles.each do |title, example|
99
+ next unless response[:content][mime_type]
100
+
101
+ response[:content][mime_type][:examples] ||= {}
102
+
103
+ response[:content][mime_type][:examples][title] ||= {}
104
+
105
+ response[:content][mime_type][:examples][title][:value] = example
106
+ end
107
+ end
91
108
 
92
109
  verb = metadata[:operation][:verb]
93
110
  operation = metadata[:operation]
@@ -103,7 +120,7 @@ module Swagalicious
103
120
  end
104
121
 
105
122
  def doc_version(doc)
106
- doc[:openapi] || doc[:swagger] || "3"
123
+ doc[:openapi] || doc[:swagger] || "3.0.0"
107
124
  end
108
125
 
109
126
  def upgrade_response_produces!(swagger_doc, metadata)
@@ -121,7 +138,11 @@ module Swagalicious
121
138
 
122
139
  mime_list.each do |mime_type|
123
140
  # TODO upgrade to have content-type specific schema
124
- target_node[:content][mime_type] = { schema: schema }
141
+ body = target_node
142
+ .fetch(:body, {})
143
+ .fetch(mime_type, {})
144
+
145
+ target_node[:content][mime_type] = { schema: schema }.merge(body)
125
146
  end
126
147
  end
127
148
 
@@ -1,3 +1,3 @@
1
- module Swagalicious
2
- VERSION = "0.1.0"
1
+ class Swagalicious
2
+ VERSION = "0.4.1"
3
3
  end
@@ -24,9 +24,12 @@ Gem::Specification.new do |spec|
24
24
  end
25
25
  spec.require_paths = ["lib"]
26
26
 
27
- spec.add_dependency "faraday", "~> 1.0.1"
27
+ spec.add_dependency "faraday", "~> 1.3.0"
28
28
  spec.add_dependency "json-schema", "~> 2.8.1"
29
- spec.add_dependency "oj", "~> 3.10.14"
30
- spec.add_dependency "rack-test", "~> 1.1.0"
31
- spec.add_dependency "rspec", "~> 3.9.0"
29
+ spec.add_dependency "oj", "~> 3.11.0"
30
+ spec.add_dependency "rspec", "~> 3.10.0"
31
+
32
+ spec.add_development_dependency "factory_bot", "~> 6.1.0"
33
+ spec.add_development_dependency "pry-byebug", "~> 3.9.0"
34
+ spec.add_development_dependency "rack-test", "~> 1.1.0"
32
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swagalicious
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eugene Howe
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-10 00:00:00.000000000 Z
11
+ date: 2021-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.1
19
+ version: 1.3.0
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
- version: 1.0.1
26
+ version: 1.3.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: json-schema
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,42 +44,70 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.10.14
47
+ version: 3.11.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 3.10.14
54
+ version: 3.11.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: rack-test
56
+ name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.1.0
61
+ version: 3.10.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.1.0
68
+ version: 3.10.0
69
69
  - !ruby/object:Gem::Dependency
70
- name: rspec
70
+ name: factory_bot
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 6.1.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 6.1.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry-byebug
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
89
  version: 3.9.0
76
- type: :runtime
90
+ type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
96
  version: 3.9.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: rack-test
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.1.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.1.0
83
111
  description: This gem is almost a straight copy and paste of https://github.com/rswag/rswag/tree/master/rswag-specs
84
112
  with the Rails specific code stripped out so it can be used in Rack applications
85
113
  that don't use Rails.
@@ -118,7 +146,7 @@ metadata:
118
146
  allowed_push_host: https://rubygems.org
119
147
  homepage_uri: https://github.com/ehowe/swagalicious
120
148
  source_code_uri: https://github.com/ehowe/swagalicious
121
- post_install_message:
149
+ post_install_message:
122
150
  rdoc_options: []
123
151
  require_paths:
124
152
  - lib
@@ -133,8 +161,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
161
  - !ruby/object:Gem::Version
134
162
  version: '0'
135
163
  requirements: []
136
- rubygems_version: 3.0.6
137
- signing_key:
164
+ rubygems_version: 3.0.8
165
+ signing_key:
138
166
  specification_version: 4
139
167
  summary: RSwag without Rails
140
168
  test_files: []