rswag-specs 2.10.1 → 2.13.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 +4 -4
- data/lib/generators/rswag/specs/install/templates/swagger_helper.rb +7 -7
- data/lib/rswag/specs/configuration.rb +32 -30
- data/lib/rswag/specs/example_group_helpers.rb +0 -3
- data/lib/rswag/specs/railtie.rb +7 -1
- data/lib/rswag/specs/request_factory.rb +5 -5
- data/lib/rswag/specs/response_validator.rb +9 -7
- data/lib/rswag/specs/swagger_formatter.rb +10 -14
- data/lib/rswag/specs.rb +37 -5
- data/lib/tasks/rswag-specs_tasks.rake +1 -2
- metadata +14 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4cbdf31d7dbcce5ecc58c58544873479a159a78e54b08717a32c17a246e017a
|
4
|
+
data.tar.gz: d136dbe25d2ad3abebaa9f25c54788d989ad77e060c7777dbde1a007831701cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 123ca088b4c0bf69c45c399c61b29af122631111cc22c3e83965521fc36561f076e90f94b6ee53eeea56625a6ee5d432939dbd31494fb4e66f5ceefebd077752
|
7
|
+
data.tar.gz: 155f8b3dbbc824751ae8e82e1ba25da43253aa40f76aff419473f1f97faa64026ffde966d5a23c7b01c98e577e4f4a183d4f4e9b6b04c585fe054103ce00d76e
|
@@ -6,15 +6,15 @@ RSpec.configure do |config|
|
|
6
6
|
# Specify a root folder where Swagger JSON files are generated
|
7
7
|
# NOTE: If you're using the rswag-api to serve API descriptions, you'll need
|
8
8
|
# to ensure that it's configured to serve Swagger from the same folder
|
9
|
-
config.
|
9
|
+
config.openapi_root = Rails.root.join('swagger').to_s
|
10
10
|
|
11
11
|
# Define one or more Swagger documents and provide global metadata for each one
|
12
12
|
# When you run the 'rswag:specs:swaggerize' rake task, the complete Swagger will
|
13
|
-
# be generated at the provided relative path under
|
13
|
+
# be generated at the provided relative path under openapi_root
|
14
14
|
# By default, the operations defined in spec files are added to the first
|
15
|
-
# document below. You can override this behavior by adding a
|
16
|
-
# the root example_group in your specs, e.g. describe '...',
|
17
|
-
config.
|
15
|
+
# document below. You can override this behavior by adding a openapi_spec tag to the
|
16
|
+
# the root example_group in your specs, e.g. describe '...', openapi_spec: 'v2/swagger.json'
|
17
|
+
config.openapi_specs = {
|
18
18
|
'v1/swagger.yaml' => {
|
19
19
|
openapi: '3.0.1',
|
20
20
|
info: {
|
@@ -36,8 +36,8 @@ RSpec.configure do |config|
|
|
36
36
|
}
|
37
37
|
|
38
38
|
# Specify the format of the output Swagger file when running 'rswag:specs:swaggerize'.
|
39
|
-
# The
|
39
|
+
# The openapi_specs configuration option has the filename including format in
|
40
40
|
# the key, this may want to be changed to avoid putting yaml in json files.
|
41
41
|
# Defaults to json. Accepts ':json' and ':yaml'.
|
42
|
-
config.
|
42
|
+
config.openapi_format = :yaml
|
43
43
|
end
|
@@ -7,57 +7,59 @@ module Rswag
|
|
7
7
|
@rspec_config = rspec_config
|
8
8
|
end
|
9
9
|
|
10
|
-
def
|
11
|
-
@
|
12
|
-
|
13
|
-
|
10
|
+
def openapi_root
|
11
|
+
@openapi_root ||=
|
12
|
+
@rspec_config.openapi_root || raise(ConfigurationError, 'No openapi_root provided. See swagger_helper.rb')
|
13
|
+
end
|
14
|
+
|
15
|
+
def openapi_specs
|
16
|
+
@openapi_specs ||= begin
|
17
|
+
if @rspec_config.openapi_specs.nil? || @rspec_config.openapi_specs.empty?
|
18
|
+
raise ConfigurationError, 'No openapi_specs defined. See swagger_helper.rb'
|
14
19
|
end
|
15
20
|
|
16
|
-
@rspec_config.
|
21
|
+
@rspec_config.openapi_specs
|
17
22
|
end
|
18
23
|
end
|
19
24
|
|
20
|
-
def
|
21
|
-
@
|
22
|
-
if
|
23
|
-
|
25
|
+
def rswag_dry_run
|
26
|
+
@rswag_dry_run ||= begin
|
27
|
+
if ENV.key?('SWAGGER_DRY_RUN') || ENV.key?('RSWAG_DRY_RUN')
|
28
|
+
@rspec_config.rswag_dry_run = ENV['SWAGGER_DRY_RUN'] == '1' || ENV['RSWAG_DRY_RUN'] == '1'
|
24
29
|
end
|
25
30
|
|
26
|
-
@rspec_config.
|
31
|
+
@rspec_config.rswag_dry_run.nil? || @rspec_config.rswag_dry_run
|
27
32
|
end
|
28
33
|
end
|
29
34
|
|
30
|
-
def
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
@swagger_dry_run = @rspec_config.swagger_dry_run.nil? || @rspec_config.swagger_dry_run
|
36
|
-
end
|
35
|
+
def openapi_format
|
36
|
+
@openapi_format ||= begin
|
37
|
+
if @rspec_config.openapi_format.nil? || @rspec_config.openapi_format.empty?
|
38
|
+
@rspec_config.openapi_format = :json
|
39
|
+
end
|
37
40
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
raise ConfigurationError, "Unknown swagger_format '#{@rspec_config.swagger_format}'" unless [:json, :yaml].include?(@rspec_config.swagger_format)
|
41
|
+
unless [:json, :yaml].include?(@rspec_config.openapi_format)
|
42
|
+
raise ConfigurationError, "Unknown openapi_format '#{@rspec_config.openapi_format}'"
|
43
|
+
end
|
42
44
|
|
43
|
-
@rspec_config.
|
45
|
+
@rspec_config.openapi_format
|
44
46
|
end
|
45
47
|
end
|
46
48
|
|
47
|
-
def
|
48
|
-
return
|
49
|
-
raise ConfigurationError, "Unknown
|
49
|
+
def get_openapi_spec(name)
|
50
|
+
return openapi_specs.values.first if name.nil?
|
51
|
+
raise ConfigurationError, "Unknown openapi_spec '#{name}'" unless openapi_specs[name]
|
50
52
|
|
51
|
-
|
53
|
+
openapi_specs[name]
|
52
54
|
end
|
53
55
|
|
54
|
-
def
|
55
|
-
doc =
|
56
|
+
def get_openapi_spec_version(name)
|
57
|
+
doc = get_openapi_spec(name)
|
56
58
|
doc[:openapi] || doc[:swagger]
|
57
59
|
end
|
58
60
|
|
59
|
-
def
|
60
|
-
@
|
61
|
+
def openapi_strict_schema_validation
|
62
|
+
@rspec_config.openapi_strict_schema_validation || false
|
61
63
|
end
|
62
64
|
end
|
63
65
|
|
@@ -5,8 +5,6 @@ require 'active_support'
|
|
5
5
|
module Rswag
|
6
6
|
module Specs
|
7
7
|
module ExampleGroupHelpers
|
8
|
-
ActiveSupport::Deprecation.warn('Rswag::Specs: WARNING: Support for Ruby 2.6 will be dropped in v3.0') if RUBY_VERSION.start_with? '2.6'
|
9
|
-
|
10
8
|
def path(template, metadata = {}, &block)
|
11
9
|
metadata[:path_item] = { template: template }
|
12
10
|
describe(template, metadata, &block)
|
@@ -129,7 +127,6 @@ module Rswag
|
|
129
127
|
description ||= "returns a #{metadata[:response][:code]} response"
|
130
128
|
|
131
129
|
if RSPEC_VERSION < 3
|
132
|
-
ActiveSupport::Deprecation.warn('Rswag::Specs: WARNING: Support for RSpec 2.X will be dropped in v3.0')
|
133
130
|
before do
|
134
131
|
submit_request(example.metadata)
|
135
132
|
end
|
data/lib/rswag/specs/railtie.rb
CHANGED
@@ -8,7 +8,13 @@ module Rswag
|
|
8
8
|
end
|
9
9
|
|
10
10
|
generators do
|
11
|
-
require 'generators/rspec/swagger_generator
|
11
|
+
require 'generators/rspec/swagger_generator'
|
12
|
+
end
|
13
|
+
|
14
|
+
initializer 'rswag-specs.deprecator' do |app|
|
15
|
+
if app.respond_to?(:deprecators)
|
16
|
+
app.deprecators[:rswag_specs] = Rswag::Specs.deprecator
|
17
|
+
end
|
12
18
|
end
|
13
19
|
end
|
14
20
|
end
|
@@ -12,7 +12,7 @@ module Rswag
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def build_request(metadata, example)
|
15
|
-
swagger_doc = @config.
|
15
|
+
swagger_doc = @config.get_openapi_spec(metadata[:openapi_spec] || metadata[:swagger_doc])
|
16
16
|
parameters = expand_parameters(metadata, swagger_doc, example)
|
17
17
|
|
18
18
|
{}.tap do |request|
|
@@ -53,7 +53,7 @@ module Rswag
|
|
53
53
|
(swagger_doc[:securityDefinitions] || {}).slice(*scheme_names).values
|
54
54
|
else # Openapi3
|
55
55
|
if swagger_doc.key?(:securityDefinitions)
|
56
|
-
|
56
|
+
Rswag::Specs.deprecator.warn('Rswag::Specs: WARNING: securityDefinitions is replaced in OpenAPI3! Rename to components/securitySchemes (in swagger_helper.rb)')
|
57
57
|
swagger_doc[:components] ||= { securitySchemes: swagger_doc[:securityDefinitions] }
|
58
58
|
swagger_doc.delete(:securityDefinitions)
|
59
59
|
end
|
@@ -75,7 +75,7 @@ module Rswag
|
|
75
75
|
ref.sub('#/parameters/', '').to_sym
|
76
76
|
else # Openapi3
|
77
77
|
if ref.start_with?('#/parameters/')
|
78
|
-
|
78
|
+
Rswag::Specs.deprecator.warn('Rswag::Specs: WARNING: #/parameters/ refs are replaced in OpenAPI3! Rename to #/components/parameters/')
|
79
79
|
ref.sub('#/parameters/', '').to_sym
|
80
80
|
else
|
81
81
|
ref.sub('#/components/parameters/', '').to_sym
|
@@ -88,7 +88,7 @@ module Rswag
|
|
88
88
|
swagger_doc[:parameters]
|
89
89
|
else # Openapi3
|
90
90
|
if swagger_doc.key?(:parameters)
|
91
|
-
|
91
|
+
Rswag::Specs.deprecator.warn('Rswag::Specs: WARNING: parameters is replaced in OpenAPI3! Rename to components/parameters (in swagger_helper.rb)')
|
92
92
|
swagger_doc[:parameters]
|
93
93
|
else
|
94
94
|
components = swagger_doc[:components] || {}
|
@@ -115,7 +115,7 @@ module Rswag
|
|
115
115
|
uses_base_path = swagger_doc[:basePath].present?
|
116
116
|
|
117
117
|
if open_api_3_doc && uses_base_path
|
118
|
-
|
118
|
+
Rswag::Specs.deprecator.warn('Rswag::Specs: WARNING: basePath is replaced in OpenAPI3! Update your swagger_helper.rb')
|
119
119
|
end
|
120
120
|
|
121
121
|
if uses_base_path
|
@@ -13,7 +13,7 @@ module Rswag
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def validate!(metadata, response)
|
16
|
-
swagger_doc = @config.
|
16
|
+
swagger_doc = @config.get_openapi_spec(metadata[:openapi_spec] || metadata[:swagger_doc])
|
17
17
|
|
18
18
|
validate_code!(metadata, response)
|
19
19
|
validate_headers!(metadata, response.headers)
|
@@ -55,7 +55,7 @@ module Rswag
|
|
55
55
|
response_schema = metadata[:response][:schema]
|
56
56
|
return if response_schema.nil?
|
57
57
|
|
58
|
-
version = @config.
|
58
|
+
version = @config.get_openapi_spec_version(metadata[:openapi_spec] || metadata[:swagger_doc])
|
59
59
|
schemas = definitions_or_component_schemas(swagger_doc, version)
|
60
60
|
|
61
61
|
validation_schema = response_schema
|
@@ -73,10 +73,12 @@ module Rswag
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def validation_options_from(metadata)
|
76
|
-
|
77
|
-
:
|
78
|
-
|
79
|
-
|
76
|
+
if metadata.key?(:swagger_strict_schema_validation)
|
77
|
+
Rswag::Specs.deprecator.warn('Rswag::Specs: WARNING: This option will be renamed to "openapi_strict_schema_validation" in v3.0')
|
78
|
+
is_strict = !!metadata[:swagger_strict_schema_validation]
|
79
|
+
else
|
80
|
+
is_strict = !!metadata.fetch(:openapi_strict_schema_validation, @config.openapi_strict_schema_validation)
|
81
|
+
end
|
80
82
|
|
81
83
|
{ strict: is_strict }
|
82
84
|
end
|
@@ -86,7 +88,7 @@ module Rswag
|
|
86
88
|
swagger_doc.slice(:definitions)
|
87
89
|
else # Openapi3
|
88
90
|
if swagger_doc.key?(:definitions)
|
89
|
-
|
91
|
+
Rswag::Specs.deprecator.warn('Rswag::Specs: WARNING: definitions is replaced in OpenAPI3! Rename to components/schemas (in swagger_helper.rb)')
|
90
92
|
swagger_doc.slice(:definitions)
|
91
93
|
else
|
92
94
|
components = swagger_doc[:components] || {}
|
@@ -7,16 +7,12 @@ require 'swagger_helper'
|
|
7
7
|
module Rswag
|
8
8
|
module Specs
|
9
9
|
class SwaggerFormatter < ::RSpec::Core::Formatters::BaseTextFormatter
|
10
|
-
ActiveSupport::Deprecation.warn('Rswag::Specs: WARNING: Support for Ruby 2.6 will be dropped in v3.0') if RUBY_VERSION.start_with? '2.6'
|
11
|
-
|
12
10
|
if RSPEC_VERSION > 2
|
13
11
|
::RSpec::Core::Formatters.register self, :example_group_finished, :stop
|
14
|
-
else
|
15
|
-
ActiveSupport::Deprecation.warn('Rswag::Specs: WARNING: Support for RSpec 2.X will be dropped in v3.0')
|
16
12
|
end
|
17
13
|
|
18
14
|
def initialize(output, config = Rswag::Specs.config)
|
19
|
-
|
15
|
+
super(output)
|
20
16
|
@config = config
|
21
17
|
|
22
18
|
@output.puts 'Generating Swagger docs ...'
|
@@ -34,7 +30,7 @@ module Rswag
|
|
34
30
|
return if metadata[:document] == false
|
35
31
|
return unless metadata.key?(:response)
|
36
32
|
|
37
|
-
swagger_doc = @config.
|
33
|
+
swagger_doc = @config.get_openapi_spec(metadata[:openapi_spec] || metadata[:swagger_doc])
|
38
34
|
|
39
35
|
unless doc_version(swagger_doc).start_with?('2')
|
40
36
|
# This is called multiple times per file!
|
@@ -50,7 +46,7 @@ module Rswag
|
|
50
46
|
end
|
51
47
|
|
52
48
|
def stop(_notification = nil)
|
53
|
-
@config.
|
49
|
+
@config.openapi_specs.each do |url_path, doc|
|
54
50
|
unless doc_version(doc).start_with?('2')
|
55
51
|
doc[:paths]&.each_pair do |_k, v|
|
56
52
|
v.each_pair do |_verb, value|
|
@@ -85,7 +81,7 @@ module Rswag
|
|
85
81
|
end
|
86
82
|
end
|
87
83
|
|
88
|
-
file_path = File.join(@config.
|
84
|
+
file_path = File.join(@config.openapi_root, url_path)
|
89
85
|
dirname = File.dirname(file_path)
|
90
86
|
FileUtils.mkdir_p dirname unless File.exist?(dirname)
|
91
87
|
|
@@ -100,10 +96,10 @@ module Rswag
|
|
100
96
|
private
|
101
97
|
|
102
98
|
def pretty_generate(doc)
|
103
|
-
if @config.
|
99
|
+
if @config.openapi_format == :yaml
|
104
100
|
clean_doc = yaml_prepare(doc)
|
105
101
|
YAML.dump(clean_doc)
|
106
|
-
else # config errors are thrown in 'def
|
102
|
+
else # config errors are thrown in 'def openapi_format', no throw needed here
|
107
103
|
JSON.pretty_generate(doc)
|
108
104
|
end
|
109
105
|
end
|
@@ -170,7 +166,7 @@ module Rswag
|
|
170
166
|
def upgrade_servers!(swagger_doc)
|
171
167
|
return unless swagger_doc[:servers].nil? && swagger_doc.key?(:schemes)
|
172
168
|
|
173
|
-
|
169
|
+
Rswag::Specs.deprecator.warn('Rswag::Specs: WARNING: schemes, host, and basePath are replaced in OpenAPI3! Rename to array of servers[{url}] (in swagger_helper.rb)')
|
174
170
|
|
175
171
|
swagger_doc[:servers] = { urls: [] }
|
176
172
|
swagger_doc[:schemes].each do |scheme|
|
@@ -190,14 +186,14 @@ module Rswag
|
|
190
186
|
schemes.each do |name, v|
|
191
187
|
next unless v.key?(:flow)
|
192
188
|
|
193
|
-
|
189
|
+
Rswag::Specs.deprecator.warn("Rswag::Specs: WARNING: securityDefinitions flow is replaced in OpenAPI3! Rename to components/securitySchemes/#{name}/flows[] (in swagger_helper.rb)")
|
194
190
|
flow = swagger_doc[:components][:securitySchemes][name].delete(:flow).to_s
|
195
191
|
if flow == 'accessCode'
|
196
|
-
|
192
|
+
Rswag::Specs.deprecator.warn("Rswag::Specs: WARNING: securityDefinitions accessCode is replaced in OpenAPI3! Rename to clientCredentials (in swagger_helper.rb)")
|
197
193
|
flow = 'authorizationCode'
|
198
194
|
end
|
199
195
|
if flow == 'application'
|
200
|
-
|
196
|
+
Rswag::Specs.deprecator.warn("Rswag::Specs: WARNING: securityDefinitions application is replaced in OpenAPI3! Rename to authorizationCode (in swagger_helper.rb)")
|
201
197
|
flow = 'clientCredentials'
|
202
198
|
end
|
203
199
|
flow_elements = swagger_doc[:components][:securitySchemes][name].except(:type).each_with_object({}) do |(k, _v), a|
|
data/lib/rswag/specs.rb
CHANGED
@@ -8,13 +8,22 @@ require 'rswag/specs/railtie' if defined?(Rails::Railtie)
|
|
8
8
|
|
9
9
|
module Rswag
|
10
10
|
module Specs
|
11
|
+
RENAMED_METHODS = {
|
12
|
+
swagger_root: :openapi_root,
|
13
|
+
swagger_docs: :openapi_specs,
|
14
|
+
swagger_dry_run: :rswag_dry_run,
|
15
|
+
swagger_format: :openapi_format,
|
16
|
+
swagger_strict_schema_validation: :openapi_strict_schema_validation
|
17
|
+
}.freeze
|
18
|
+
private_constant :RENAMED_METHODS
|
19
|
+
|
11
20
|
# Extend RSpec with a swagger-based DSL
|
12
21
|
::RSpec.configure do |c|
|
13
|
-
c.add_setting :
|
14
|
-
c.add_setting :
|
15
|
-
c.add_setting :
|
16
|
-
c.add_setting :
|
17
|
-
c.add_setting :
|
22
|
+
c.add_setting :openapi_root
|
23
|
+
c.add_setting :openapi_specs
|
24
|
+
c.add_setting :rswag_dry_run
|
25
|
+
c.add_setting :openapi_format, default: :json
|
26
|
+
c.add_setting :openapi_strict_schema_validation
|
18
27
|
c.extend ExampleGroupHelpers, type: :request
|
19
28
|
c.include ExampleHelpers, type: :request
|
20
29
|
end
|
@@ -23,8 +32,31 @@ module Rswag
|
|
23
32
|
@config ||= Configuration.new(RSpec.configuration)
|
24
33
|
end
|
25
34
|
|
35
|
+
def self.deprecator
|
36
|
+
@deprecator ||= ActiveSupport::Deprecation.new('3.0', 'rswag-specs')
|
37
|
+
end
|
38
|
+
|
26
39
|
# Support Rails 3+ and RSpec 2+ (sigh!)
|
27
40
|
RAILS_VERSION = Rails::VERSION::MAJOR
|
28
41
|
RSPEC_VERSION = RSpec::Core::Version::STRING.split('.').first.to_i
|
42
|
+
|
43
|
+
RSpec::Core::Configuration.class_eval do
|
44
|
+
RENAMED_METHODS.each do |old_name, new_name|
|
45
|
+
define_method("#{old_name}=") do |*args, &block|
|
46
|
+
public_send("#{new_name}=", *args, &block)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
Specs.deprecator.deprecate_methods(
|
52
|
+
RSpec::Core::Configuration,
|
53
|
+
RENAMED_METHODS.to_h { |old_name, new_name| ["#{old_name}=".to_sym, "#{new_name}=".to_sym] }
|
54
|
+
)
|
55
|
+
|
56
|
+
if RUBY_VERSION.start_with? '2.6'
|
57
|
+
Specs.deprecator.warn('Rswag::Specs: WARNING: Support for Ruby 2.6 will be dropped in v3.0')
|
58
|
+
end
|
59
|
+
|
60
|
+
Specs.deprecator.warn('Rswag::Specs: WARNING: Support for RSpec 2.X will be dropped in v3.0') if RSPEC_VERSION < 3
|
29
61
|
end
|
30
62
|
end
|
@@ -18,10 +18,9 @@ namespace :rswag do
|
|
18
18
|
|
19
19
|
t.rspec_opts = [additional_rspec_opts]
|
20
20
|
|
21
|
-
if Rswag::Specs
|
21
|
+
if Rswag::Specs.config.rswag_dry_run
|
22
22
|
t.rspec_opts += ['--format Rswag::Specs::SwaggerFormatter', '--dry-run', '--order defined']
|
23
23
|
else
|
24
|
-
ActiveSupport::Deprecation.warn('Rswag::Specs: WARNING: Support for RSpec 2.X will be dropped in v3.0')
|
25
24
|
t.rspec_opts += ['--format Rswag::Specs::SwaggerFormatter', '--order defined']
|
26
25
|
end
|
27
26
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rswag-specs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richie Morris
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-
|
13
|
+
date: 2023-11-29 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '3.1'
|
22
22
|
- - "<"
|
23
23
|
- !ruby/object:Gem::Version
|
24
|
-
version: '7.
|
24
|
+
version: '7.2'
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
27
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -31,47 +31,47 @@ dependencies:
|
|
31
31
|
version: '3.1'
|
32
32
|
- - "<"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '7.
|
34
|
+
version: '7.2'
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
36
|
+
name: json-schema
|
37
37
|
requirement: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
41
|
+
version: '2.2'
|
42
42
|
- - "<"
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version: '
|
44
|
+
version: '5.0'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
47
|
version_requirements: !ruby/object:Gem::Requirement
|
48
48
|
requirements:
|
49
49
|
- - ">="
|
50
50
|
- !ruby/object:Gem::Version
|
51
|
-
version: '
|
51
|
+
version: '2.2'
|
52
52
|
- - "<"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '5.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: railties
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '3.1'
|
62
62
|
- - "<"
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version: '
|
64
|
+
version: '7.2'
|
65
65
|
type: :runtime
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
69
|
- - ">="
|
70
70
|
- !ruby/object:Gem::Version
|
71
|
-
version: '
|
71
|
+
version: '3.1'
|
72
72
|
- - "<"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
74
|
+
version: '7.2'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: rspec-core
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|