swagalicious 0.1.0 → 0.4.1

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: 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: []