ruby-swagger 0.0.3 → 0.1.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/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
|