ruby-swagger 0.0.3 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ruby-swagger.rb +1 -5
- data/lib/ruby-swagger/data/contact.rb +3 -8
- data/lib/ruby-swagger/data/definitions.rb +5 -7
- data/lib/ruby-swagger/data/document.rb +22 -24
- data/lib/ruby-swagger/data/example.rb +3 -5
- data/lib/ruby-swagger/data/external_documentation.rb +4 -6
- data/lib/ruby-swagger/data/header.rb +2 -4
- data/lib/ruby-swagger/data/headers.rb +5 -8
- data/lib/ruby-swagger/data/info.rb +6 -8
- data/lib/ruby-swagger/data/items.rb +4 -6
- data/lib/ruby-swagger/data/license.rb +4 -6
- data/lib/ruby-swagger/data/mime.rb +0 -2
- data/lib/ruby-swagger/data/operation.rb +7 -9
- data/lib/ruby-swagger/data/parameter.rb +4 -10
- data/lib/ruby-swagger/data/parameters.rb +4 -6
- data/lib/ruby-swagger/data/path.rb +14 -18
- data/lib/ruby-swagger/data/paths.rb +5 -7
- data/lib/ruby-swagger/data/reference.rb +4 -8
- data/lib/ruby-swagger/data/response.rb +1 -3
- data/lib/ruby-swagger/data/responses.rb +1 -3
- data/lib/ruby-swagger/data/schema.rb +7 -9
- data/lib/ruby-swagger/data/scopes.rb +4 -6
- data/lib/ruby-swagger/data/security_definitions.rb +5 -7
- data/lib/ruby-swagger/data/security_requirement.rb +6 -8
- data/lib/ruby-swagger/data/security_scheme.rb +10 -12
- data/lib/ruby-swagger/data/tag.rb +3 -5
- data/lib/ruby-swagger/data/url.rb +1 -3
- data/lib/ruby-swagger/data/xml_object.rb +2 -4
- data/lib/ruby-swagger/grape/entity.rb +41 -0
- data/lib/ruby-swagger/grape/entity_exposure.rb +96 -0
- data/lib/ruby-swagger/grape/entity_nesting_exposure.rb +38 -0
- data/lib/ruby-swagger/grape/grape.rb +1 -1
- data/lib/ruby-swagger/grape/grape_config.rb +19 -22
- data/lib/ruby-swagger/grape/grape_presenter.rb +6 -9
- data/lib/ruby-swagger/grape/grape_template.rb +3 -5
- data/lib/ruby-swagger/grape/method.rb +79 -71
- data/lib/ruby-swagger/grape/param.rb +3 -3
- data/lib/ruby-swagger/grape/route_path.rb +1 -3
- data/lib/ruby-swagger/grape/routes.rb +6 -9
- data/lib/ruby-swagger/grape/type.rb +46 -119
- data/lib/ruby-swagger/io/comparable.rb +13 -16
- data/lib/ruby-swagger/io/definitions.rb +5 -11
- data/lib/ruby-swagger/io/file_system.rb +8 -9
- data/lib/ruby-swagger/io/paths.rb +6 -11
- data/lib/ruby-swagger/io/security.rb +3 -6
- data/lib/ruby-swagger/object.rb +5 -7
- data/lib/ruby-swagger/railtie.rb +1 -1
- data/lib/ruby-swagger/template.rb +2 -4
- data/lib/tasks/swagger.rake +13 -18
- metadata +10 -7
@@ -1,30 +1,27 @@
|
|
1
1
|
module Swagger::IO
|
2
2
|
class Comparable
|
3
|
-
|
4
3
|
def self.copy_description_old_definition(definition, old_definition)
|
5
4
|
return if definition.nil? || old_definition.nil? || definition.class != old_definition.class
|
6
5
|
|
7
6
|
case definition
|
8
|
-
|
9
|
-
|
10
|
-
definition.keys.each do |key|
|
11
|
-
old_v = definition[key]
|
7
|
+
when Hash
|
12
8
|
|
13
|
-
|
14
|
-
|
15
|
-
end
|
9
|
+
definition.keys.each do |key|
|
10
|
+
old_v = definition[key]
|
16
11
|
|
17
|
-
|
18
|
-
|
19
|
-
end
|
12
|
+
if (key == 'description' || key == 'summary') && old_definition[key]
|
13
|
+
definition[key] = old_definition[key]
|
20
14
|
end
|
21
|
-
|
22
|
-
|
23
|
-
copy_description_old_definition(definition[
|
15
|
+
|
16
|
+
if old_v.is_a?(Hash) || old_v.is_a?(Array)
|
17
|
+
copy_description_old_definition(definition[key], old_definition[key])
|
24
18
|
end
|
19
|
+
end
|
20
|
+
when Array
|
21
|
+
definition.each_with_index do |_item, index|
|
22
|
+
copy_description_old_definition(definition[index], old_definition[index])
|
23
|
+
end
|
25
24
|
end
|
26
25
|
end
|
27
|
-
|
28
26
|
end
|
29
|
-
|
30
27
|
end
|
@@ -3,12 +3,11 @@ require 'ruby-swagger/io/comparable'
|
|
3
3
|
|
4
4
|
module Swagger::IO
|
5
5
|
class Definitions
|
6
|
-
|
7
6
|
def self.read_definitions
|
8
7
|
definitions = {}
|
9
8
|
|
10
|
-
Swagger::IO::FileSystem.all_files(
|
11
|
-
definitions[File.basename(file,
|
9
|
+
Swagger::IO::FileSystem.all_files('definitions/**/*.yml').each do |file|
|
10
|
+
definitions[File.basename(file, '.yml')] = YAML.load_file(file)
|
12
11
|
end
|
13
12
|
|
14
13
|
definitions
|
@@ -17,20 +16,18 @@ module Swagger::IO
|
|
17
16
|
def self.write_definitions(definitions)
|
18
17
|
return if definitions.nil?
|
19
18
|
|
20
|
-
#Remove dead definitions
|
21
|
-
Swagger::IO::FileSystem.all_files(
|
22
|
-
def_name = File.basename(file,
|
19
|
+
# Remove dead definitions
|
20
|
+
Swagger::IO::FileSystem.all_files('definitions/**/*.yml').each do |file|
|
21
|
+
def_name = File.basename(file, '.yml')
|
23
22
|
|
24
23
|
unless definitions[def_name]
|
25
24
|
STDERR.puts "#{def_name} is not present anymore, removing #{file}"
|
26
25
|
Swagger::IO::FileSystem.delete_file(file)
|
27
26
|
end
|
28
|
-
|
29
27
|
end
|
30
28
|
|
31
29
|
# Write new definitions
|
32
30
|
definitions.each do |definition_name, definition|
|
33
|
-
|
34
31
|
# If an old definition exists, we copy over the documentation to the generated definition
|
35
32
|
if Swagger::IO::FileSystem.file_exists?("definitions/#{definition_name}.yml")
|
36
33
|
old_definition = Swagger::IO::FileSystem.read_file("definitions/#{definition_name}.yml")
|
@@ -41,8 +38,5 @@ module Swagger::IO
|
|
41
38
|
Swagger::IO::FileSystem.write_file(definition.to_yaml, "definitions/#{definition_name}.yml", true)
|
42
39
|
end
|
43
40
|
end
|
44
|
-
|
45
|
-
|
46
41
|
end
|
47
|
-
|
48
42
|
end
|
@@ -3,10 +3,10 @@ require 'ruby-swagger/data/document'
|
|
3
3
|
require 'ruby-swagger/io/security'
|
4
4
|
require 'ruby-swagger/io/definitions'
|
5
5
|
require 'ruby-swagger/io/paths'
|
6
|
+
require 'erb'
|
6
7
|
|
7
8
|
module Swagger::IO
|
8
9
|
class FileSystem
|
9
|
-
|
10
10
|
DOC_SUBPARTS = %w(responses security tags)
|
11
11
|
|
12
12
|
@@default_path = './doc/swagger'
|
@@ -20,7 +20,7 @@ module Swagger::IO
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def self.init_fs_structure
|
23
|
-
FileUtils.mkdir_p(@@default_path) unless Dir.
|
23
|
+
FileUtils.mkdir_p(@@default_path) unless Dir.exist?(@@default_path)
|
24
24
|
end
|
25
25
|
|
26
26
|
def self.read_file(name)
|
@@ -30,16 +30,16 @@ module Swagger::IO
|
|
30
30
|
def self.write_file(content, location, overwrite = false)
|
31
31
|
file_path = @@default_path + '/' + location
|
32
32
|
|
33
|
-
return if !overwrite && File.
|
33
|
+
return if !overwrite && File.exist?(file_path)
|
34
34
|
|
35
35
|
dir_path = File.dirname(file_path)
|
36
36
|
|
37
|
-
FileUtils.mkdir_p(dir_path) unless Dir.
|
38
|
-
File.open(file_path, 'w') {|f| f.write(content) }
|
37
|
+
FileUtils.mkdir_p(dir_path) unless Dir.exist?(dir_path)
|
38
|
+
File.open(file_path, 'w') { |f| f.write(content) }
|
39
39
|
end
|
40
40
|
|
41
41
|
def self.file_exists?(name)
|
42
|
-
File.
|
42
|
+
File.exist?(@@default_path + '/' + name)
|
43
43
|
end
|
44
44
|
|
45
45
|
def self.all_files(pattern)
|
@@ -61,7 +61,7 @@ module Swagger::IO
|
|
61
61
|
|
62
62
|
Swagger::IO::Paths.write_paths(swagger.delete('paths'))
|
63
63
|
|
64
|
-
DOC_SUBPARTS.each {|doc_part| write_subpart(doc_part, swagger.delete(doc_part))}
|
64
|
+
DOC_SUBPARTS.each { |doc_part| write_subpart(doc_part, swagger.delete(doc_part)) }
|
65
65
|
Swagger::IO::Definitions.write_definitions(swagger.delete('definitions'))
|
66
66
|
Swagger::IO::Security.write_security_definitions(swagger.delete('securityDefinitions'))
|
67
67
|
Swagger::IO::FileSystem.write_file(swagger.to_yaml, 'base_doc.yml')
|
@@ -78,7 +78,7 @@ module Swagger::IO
|
|
78
78
|
doc['paths'] = Swagger::IO::Paths.read_paths
|
79
79
|
doc['definitions'] = Swagger::IO::Definitions.read_definitions
|
80
80
|
doc['securityDefinitions'] = Swagger::IO::Security.read_security_definitions
|
81
|
-
|
81
|
+
|
82
82
|
Swagger::Data::Document.parse(doc)
|
83
83
|
end
|
84
84
|
|
@@ -92,6 +92,5 @@ module Swagger::IO
|
|
92
92
|
return unless content
|
93
93
|
write_file(content.to_yaml, "#{subpart}.yml")
|
94
94
|
end
|
95
|
-
|
96
95
|
end
|
97
96
|
end
|
@@ -2,16 +2,15 @@ require 'ruby-swagger/io/file_system'
|
|
2
2
|
|
3
3
|
module Swagger::IO
|
4
4
|
class Paths
|
5
|
-
|
6
5
|
def self.read_paths
|
7
6
|
paths = {}
|
8
7
|
|
9
8
|
l = (Swagger::IO::FileSystem.default_path + '/paths').length
|
10
9
|
|
11
10
|
Swagger::IO::FileSystem.all_files('paths/**/*.yml').each do |file|
|
12
|
-
content = YAML
|
11
|
+
content = YAML.load_file(file)
|
13
12
|
paths[File.dirname(file[l..file.length])] ||= {}
|
14
|
-
paths[File.dirname(file[l..file.length])][File.basename(file,
|
13
|
+
paths[File.dirname(file[l..file.length])][File.basename(file, '.yml')] = content
|
15
14
|
end
|
16
15
|
|
17
16
|
paths
|
@@ -22,20 +21,18 @@ module Swagger::IO
|
|
22
21
|
|
23
22
|
l = (Swagger::IO::FileSystem.default_path + '/paths').length
|
24
23
|
|
25
|
-
#Remove dead endpoints
|
26
|
-
Swagger::IO::FileSystem.all_files(
|
24
|
+
# Remove dead endpoints
|
25
|
+
Swagger::IO::FileSystem.all_files('paths/**/*.yml').each do |file|
|
27
26
|
def_name = file[l..file.length]
|
28
27
|
|
29
|
-
if paths[File.dirname(file[l..file.length])].nil? || paths[File.dirname(file[l..file.length])][File.basename(file,
|
28
|
+
if paths[File.dirname(file[l..file.length])].nil? || paths[File.dirname(file[l..file.length])][File.basename(file, '.yml')].nil?
|
30
29
|
STDERR.puts "#{def_name} is not present anymore, removing #{file}"
|
31
30
|
Swagger::IO::FileSystem.delete_file(file)
|
32
31
|
end
|
33
|
-
|
34
32
|
end
|
35
33
|
|
36
34
|
paths.each do |path, path_obj|
|
37
35
|
path_obj.each do |action, action_obj|
|
38
|
-
|
39
36
|
file = "paths/#{path}/#{action}.yml"
|
40
37
|
|
41
38
|
# If an old definition exists, we copy over the documentation to the generated definition
|
@@ -45,11 +42,9 @@ module Swagger::IO
|
|
45
42
|
Swagger::IO::Comparable.copy_description_old_definition(action_obj, old_action)
|
46
43
|
end
|
47
44
|
|
48
|
-
|
49
45
|
Swagger::IO::FileSystem.write_file(action_obj.to_yaml, file, true)
|
50
46
|
end
|
51
47
|
end
|
52
48
|
end
|
53
|
-
|
54
49
|
end
|
55
|
-
end
|
50
|
+
end
|
@@ -2,7 +2,6 @@ require 'ruby-swagger/io/file_system'
|
|
2
2
|
|
3
3
|
module Swagger::IO
|
4
4
|
class Security
|
5
|
-
|
6
5
|
SECURITY_FILE_NAME = 'securityDefinitions.yml'
|
7
6
|
|
8
7
|
def self.write_security_definitions(security_definitions)
|
@@ -19,8 +18,8 @@ module Swagger::IO
|
|
19
18
|
return nil unless Swagger::IO::FileSystem.file_exists?(SECURITY_FILE_NAME)
|
20
19
|
definitions = Swagger::IO::FileSystem.read_file(SECURITY_FILE_NAME)
|
21
20
|
|
22
|
-
Swagger::IO::FileSystem.all_files(
|
23
|
-
definitions[File.basename(file,
|
21
|
+
Swagger::IO::FileSystem.all_files('/scopes/*.yml').each do |file|
|
22
|
+
definitions[File.basename(file, '.yml')]['scopes'] = YAML.load_file(file)
|
24
23
|
end
|
25
24
|
|
26
25
|
definitions
|
@@ -34,12 +33,10 @@ module Swagger::IO
|
|
34
33
|
|
35
34
|
return Swagger::IO::FileSystem.write_file(scopes.to_yaml, scope_file) unless Swagger::IO::FileSystem.file_exists?(scope_file)
|
36
35
|
|
37
|
-
#Merging old scopes into new scope
|
36
|
+
# Merging old scopes into new scope
|
38
37
|
old_scopes = Swagger::IO::FileSystem.read_file(scope_file)
|
39
38
|
|
40
39
|
Swagger::IO::FileSystem.write_file(scopes.merge(old_scopes).to_yaml, scope_file, true)
|
41
40
|
end
|
42
|
-
|
43
41
|
end
|
44
|
-
|
45
42
|
end
|
data/lib/ruby-swagger/object.rb
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
module Swagger
|
2
2
|
class Object
|
3
|
-
|
4
3
|
@@swagger_attribs = {}
|
5
4
|
|
6
5
|
def self.attr_swagger(*attributes)
|
7
6
|
attr_accessor(*attributes)
|
8
|
-
@@swagger_attribs[
|
7
|
+
@@swagger_attribs[to_s] = *attributes
|
9
8
|
end
|
10
9
|
|
11
10
|
def swagger_attributes
|
@@ -26,7 +25,7 @@ module Swagger
|
|
26
25
|
|
27
26
|
def bulk_set(object)
|
28
27
|
swagger_attributes.each do |attribute|
|
29
|
-
|
28
|
+
send("#{attribute}=", object[attribute.to_s])
|
30
29
|
end
|
31
30
|
|
32
31
|
self
|
@@ -40,10 +39,10 @@ module Swagger
|
|
40
39
|
return swagger unless swagger_attributes
|
41
40
|
|
42
41
|
swagger_attributes.each do |property|
|
43
|
-
obj =
|
42
|
+
obj = send(property)
|
44
43
|
obj = swaggerify(obj)
|
45
44
|
|
46
|
-
swagger[property.to_s] = obj
|
45
|
+
swagger[property.to_s] = obj unless obj.nil?
|
47
46
|
end
|
48
47
|
|
49
48
|
swagger
|
@@ -62,6 +61,5 @@ module Swagger
|
|
62
61
|
|
63
62
|
object
|
64
63
|
end
|
65
|
-
|
66
64
|
end
|
67
|
-
end
|
65
|
+
end
|
data/lib/ruby-swagger/railtie.rb
CHANGED
@@ -2,7 +2,6 @@ require 'ruby-swagger/data/document'
|
|
2
2
|
|
3
3
|
module Swagger
|
4
4
|
class Template
|
5
|
-
|
6
5
|
def self.generate
|
7
6
|
swagger_doc = Swagger::Data::Document.new
|
8
7
|
|
@@ -14,7 +13,7 @@ module Swagger
|
|
14
13
|
swagger_doc.host = 'localhost:80'
|
15
14
|
swagger_doc.basePath = '/api/v1'
|
16
15
|
|
17
|
-
swagger_doc.schemes =
|
16
|
+
swagger_doc.schemes = %w(https http)
|
18
17
|
swagger_doc.produces = ['application/json']
|
19
18
|
swagger_doc.consumes = ['application/json']
|
20
19
|
|
@@ -24,6 +23,5 @@ module Swagger
|
|
24
23
|
|
25
24
|
swagger_doc
|
26
25
|
end
|
27
|
-
|
28
26
|
end
|
29
|
-
end
|
27
|
+
end
|
data/lib/tasks/swagger.rake
CHANGED
@@ -2,9 +2,7 @@ require 'ruby-swagger/io/file_system'
|
|
2
2
|
require 'ruby-swagger/grape/grape_template'
|
3
3
|
|
4
4
|
namespace :swagger do
|
5
|
-
|
6
5
|
namespace :grape do
|
7
|
-
|
8
6
|
unless defined?(Rails)
|
9
7
|
task :environment do
|
10
8
|
# for non-rails environment, we do not load the env
|
@@ -12,11 +10,11 @@ namespace :swagger do
|
|
12
10
|
end
|
13
11
|
|
14
12
|
desc 'Generate a swagger meta documentation from Grape API definition and store it under doc/swagger'
|
15
|
-
task :generate_doc, [:base_class] => :environment do |
|
13
|
+
task :generate_doc, [:base_class] => :environment do |_t, args|
|
16
14
|
if args[:base_class].nil?
|
17
|
-
STDERR.puts
|
15
|
+
STDERR.puts 'You need to pass a base class for your API'
|
18
16
|
STDERR.puts "For example: rake 'swagger:grape:generate_doc[ApiBase]'"
|
19
|
-
exit
|
17
|
+
exit(-1)
|
20
18
|
end
|
21
19
|
|
22
20
|
puts "Exporting from Grape - base class #{args[:base_class]}"
|
@@ -28,12 +26,11 @@ namespace :swagger do
|
|
28
26
|
Swagger::IO::FileSystem.new(swagger_doc).write!
|
29
27
|
puts "You should check your swagger meta documentation under #{Swagger::IO::FileSystem.default_path}"
|
30
28
|
end
|
31
|
-
|
32
29
|
end
|
33
30
|
|
34
31
|
desc 'Generate a swagger 2.0-compatible documentation from the metadata stored into doc/swagger'
|
35
32
|
task :compile_doc do
|
36
|
-
puts
|
33
|
+
puts 'Compiling documentation'
|
37
34
|
|
38
35
|
Swagger::IO::FileSystem.new(Swagger::IO::FileSystem.read).compile!
|
39
36
|
|
@@ -42,23 +39,22 @@ namespace :swagger do
|
|
42
39
|
|
43
40
|
desc 'Build an API client given the swagger definition in doc/swagger/swagger.json'
|
44
41
|
namespace :generate_client do
|
45
|
-
|
46
42
|
def build_client(language)
|
47
|
-
unless File.
|
48
|
-
STDERR.puts
|
49
|
-
exit
|
43
|
+
unless File.exist?('./doc/swagger/swagger.json')
|
44
|
+
STDERR.puts 'File ./doc/swagger/swagger.json does not exist'
|
45
|
+
exit(-1)
|
50
46
|
end
|
51
47
|
|
52
|
-
unless File.
|
53
|
-
STDERR.puts
|
54
|
-
Dir.mkdir('./vendor') unless Dir.
|
48
|
+
unless File.exist?('vendor/swagger-codegen-cli.jar')
|
49
|
+
STDERR.puts 'Swagger codegen does not exist, downloading it now...'
|
50
|
+
Dir.mkdir('./vendor') unless Dir.exist?('./vendor')
|
55
51
|
|
56
52
|
`wget -O ./vendor/swagger-codegen-cli.jar https://s3-us-west-2.amazonaws.com/tunamelt-production/swagger-codegen/swagger-codegen-cli.jar`
|
57
53
|
end
|
58
54
|
|
59
55
|
puts "Generating #{language} client (output in api_client/#{language})"
|
60
56
|
|
61
|
-
FileUtils.rm_rf("./api_client/#{language}") if Dir.
|
57
|
+
FileUtils.rm_rf("./api_client/#{language}") if Dir.exist?("./api_client/#{language}")
|
62
58
|
|
63
59
|
`java -jar ./vendor/swagger-codegen-cli.jar generate \
|
64
60
|
-i ./doc/swagger/swagger.json \
|
@@ -117,9 +113,8 @@ namespace :swagger do
|
|
117
113
|
end
|
118
114
|
|
119
115
|
desc 'Build all the API clients'
|
120
|
-
task :
|
121
|
-
|
122
|
-
task :default => [:all]
|
116
|
+
task all: [:ruby, :java, :python, :python_3, :php, :perl, :objective_c, :c_sharp, :android]
|
123
117
|
|
118
|
+
task default: [:all]
|
124
119
|
end
|
125
120
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-swagger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Bonmassar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -70,16 +70,16 @@ dependencies:
|
|
70
70
|
name: grape-entity
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
75
|
+
version: '0.5'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
82
|
+
version: '0.5'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rack-test
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -131,6 +131,9 @@ files:
|
|
131
131
|
- lib/ruby-swagger/data/tag.rb
|
132
132
|
- lib/ruby-swagger/data/url.rb
|
133
133
|
- lib/ruby-swagger/data/xml_object.rb
|
134
|
+
- lib/ruby-swagger/grape/entity.rb
|
135
|
+
- lib/ruby-swagger/grape/entity_exposure.rb
|
136
|
+
- lib/ruby-swagger/grape/entity_nesting_exposure.rb
|
134
137
|
- lib/ruby-swagger/grape/grape.rb
|
135
138
|
- lib/ruby-swagger/grape/grape_config.rb
|
136
139
|
- lib/ruby-swagger/grape/grape_presenter.rb
|
@@ -169,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
172
|
version: '0'
|
170
173
|
requirements: []
|
171
174
|
rubyforge_project:
|
172
|
-
rubygems_version: 2.
|
175
|
+
rubygems_version: 2.4.5.1
|
173
176
|
signing_key:
|
174
177
|
specification_version: 4
|
175
178
|
summary: A ruby DSL to read/write Swagger API documents
|