ruby-swagger 0.0.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 +7 -0
- data/lib/ruby-swagger.rb +7 -0
- data/lib/ruby-swagger/data/contact.rb +49 -0
- data/lib/ruby-swagger/data/definitions.rb +49 -0
- data/lib/ruby-swagger/data/document.rb +181 -0
- data/lib/ruby-swagger/data/example.rb +29 -0
- data/lib/ruby-swagger/data/external_documentation.rb +24 -0
- data/lib/ruby-swagger/data/header.rb +34 -0
- data/lib/ruby-swagger/data/headers.rb +48 -0
- data/lib/ruby-swagger/data/info.rb +56 -0
- data/lib/ruby-swagger/data/items.rb +45 -0
- data/lib/ruby-swagger/data/license.rb +51 -0
- data/lib/ruby-swagger/data/mime.rb +31 -0
- data/lib/ruby-swagger/data/operation.rb +82 -0
- data/lib/ruby-swagger/data/parameter.rb +88 -0
- data/lib/ruby-swagger/data/parameters.rb +53 -0
- data/lib/ruby-swagger/data/path.rb +115 -0
- data/lib/ruby-swagger/data/paths.rb +50 -0
- data/lib/ruby-swagger/data/reference.rb +30 -0
- data/lib/ruby-swagger/data/response.rb +25 -0
- data/lib/ruby-swagger/data/responses.rb +50 -0
- data/lib/ruby-swagger/data/schema.rb +68 -0
- data/lib/ruby-swagger/data/scopes.rb +44 -0
- data/lib/ruby-swagger/data/security_definitions.rb +49 -0
- data/lib/ruby-swagger/data/security_requirement.rb +35 -0
- data/lib/ruby-swagger/data/security_scheme.rb +67 -0
- data/lib/ruby-swagger/data/tag.rb +24 -0
- data/lib/ruby-swagger/data/url.rb +26 -0
- data/lib/ruby-swagger/data/xml_object.rb +15 -0
- data/lib/ruby-swagger/grape/grape.rb +2 -0
- data/lib/ruby-swagger/grape/grape_config.rb +160 -0
- data/lib/ruby-swagger/grape/grape_presenter.rb +48 -0
- data/lib/ruby-swagger/grape/grape_template.rb +67 -0
- data/lib/ruby-swagger/grape/method.rb +295 -0
- data/lib/ruby-swagger/grape/param.rb +33 -0
- data/lib/ruby-swagger/grape/route_path.rb +37 -0
- data/lib/ruby-swagger/grape/routes.rb +52 -0
- data/lib/ruby-swagger/grape/type.rb +141 -0
- data/lib/ruby-swagger/io/comparable.rb +30 -0
- data/lib/ruby-swagger/io/definitions.rb +48 -0
- data/lib/ruby-swagger/io/file_system.rb +97 -0
- data/lib/ruby-swagger/io/paths.rb +55 -0
- data/lib/ruby-swagger/io/security.rb +45 -0
- data/lib/ruby-swagger/object.rb +67 -0
- data/lib/ruby-swagger/railtie.rb +7 -0
- data/lib/ruby-swagger/template.rb +29 -0
- data/lib/tasks/swagger.rake +125 -0
- metadata +176 -0
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'ruby-swagger/io/file_system'
|
2
|
+
|
3
|
+
module Swagger::IO
|
4
|
+
class Paths
|
5
|
+
|
6
|
+
def self.read_paths
|
7
|
+
paths = {}
|
8
|
+
|
9
|
+
l = (Swagger::IO::FileSystem.default_path + '/paths').length
|
10
|
+
|
11
|
+
Swagger::IO::FileSystem.all_files('paths/**/*.yml').each do |file|
|
12
|
+
content = YAML::load_file(file)
|
13
|
+
paths[File.dirname(file[l..file.length])] ||= {}
|
14
|
+
paths[File.dirname(file[l..file.length])][File.basename(file, ".yml")] = content
|
15
|
+
end
|
16
|
+
|
17
|
+
paths
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.write_paths(paths)
|
21
|
+
return if paths.nil?
|
22
|
+
|
23
|
+
l = (Swagger::IO::FileSystem.default_path + '/paths').length
|
24
|
+
|
25
|
+
#Remove dead endpoints
|
26
|
+
Swagger::IO::FileSystem.all_files("paths/**/*.yml").each do |file|
|
27
|
+
def_name = file[l..file.length]
|
28
|
+
|
29
|
+
if paths[File.dirname(file[l..file.length])].nil? || paths[File.dirname(file[l..file.length])][File.basename(file, ".yml")].nil?
|
30
|
+
STDERR.puts "#{def_name} is not present anymore, removing #{file}"
|
31
|
+
Swagger::IO::FileSystem.delete_file(file)
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
paths.each do |path, path_obj|
|
37
|
+
path_obj.each do |action, action_obj|
|
38
|
+
|
39
|
+
file = "paths/#{path}/#{action}.yml"
|
40
|
+
|
41
|
+
# If an old definition exists, we copy over the documentation to the generated definition
|
42
|
+
if Swagger::IO::FileSystem.file_exists?(file)
|
43
|
+
old_action = Swagger::IO::FileSystem.read_file(file)
|
44
|
+
|
45
|
+
Swagger::IO::Comparable.copy_description_old_definition(action_obj, old_action)
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
Swagger::IO::FileSystem.write_file(action_obj.to_yaml, file, true)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'ruby-swagger/io/file_system'
|
2
|
+
|
3
|
+
module Swagger::IO
|
4
|
+
class Security
|
5
|
+
|
6
|
+
SECURITY_FILE_NAME = 'securityDefinitions.yml'
|
7
|
+
|
8
|
+
def self.write_security_definitions(security_definitions)
|
9
|
+
return if security_definitions.nil? || security_definitions.empty?
|
10
|
+
|
11
|
+
security_definitions.each do |definition_name, definition|
|
12
|
+
Swagger::IO::Security.write_scopes(definition_name, definition)
|
13
|
+
end
|
14
|
+
|
15
|
+
Swagger::IO::FileSystem.write_file(security_definitions.to_yaml, SECURITY_FILE_NAME)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.read_security_definitions
|
19
|
+
return nil unless Swagger::IO::FileSystem.file_exists?(SECURITY_FILE_NAME)
|
20
|
+
definitions = Swagger::IO::FileSystem.read_file(SECURITY_FILE_NAME)
|
21
|
+
|
22
|
+
Swagger::IO::FileSystem.all_files("/scopes/*.yml").each do |file|
|
23
|
+
definitions[File.basename(file, ".yml")]['scopes'] = YAML::load_file(file)
|
24
|
+
end
|
25
|
+
|
26
|
+
definitions
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.write_scopes(definition_name, definition)
|
30
|
+
return unless definition && definition['scopes']
|
31
|
+
|
32
|
+
scopes = definition.delete('scopes') || {}
|
33
|
+
scope_file = "scopes/#{definition_name}.yml"
|
34
|
+
|
35
|
+
return Swagger::IO::FileSystem.write_file(scopes.to_yaml, scope_file) unless Swagger::IO::FileSystem.file_exists?(scope_file)
|
36
|
+
|
37
|
+
#Merging old scopes into new scope
|
38
|
+
old_scopes = Swagger::IO::FileSystem.read_file(scope_file)
|
39
|
+
|
40
|
+
Swagger::IO::FileSystem.write_file(scopes.merge(old_scopes).to_yaml, scope_file, true)
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module Swagger
|
2
|
+
class Object
|
3
|
+
|
4
|
+
@@swagger_attribs = {}
|
5
|
+
|
6
|
+
def self.attr_swagger(*attributes)
|
7
|
+
attr_accessor(*attributes)
|
8
|
+
@@swagger_attribs[self.to_s] = *attributes
|
9
|
+
end
|
10
|
+
|
11
|
+
def swagger_attributes
|
12
|
+
@@swagger_attribs[self.class.to_s]
|
13
|
+
end
|
14
|
+
|
15
|
+
def to_json(options = nil)
|
16
|
+
to_swagger.to_json(options)
|
17
|
+
end
|
18
|
+
|
19
|
+
def to_yaml
|
20
|
+
to_swagger.to_yaml
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_swagger
|
24
|
+
as_swagger
|
25
|
+
end
|
26
|
+
|
27
|
+
def bulk_set(object)
|
28
|
+
swagger_attributes.each do |attribute|
|
29
|
+
self.send("#{attribute}=", object[attribute.to_s])
|
30
|
+
end
|
31
|
+
|
32
|
+
self
|
33
|
+
end
|
34
|
+
|
35
|
+
protected
|
36
|
+
|
37
|
+
def as_swagger
|
38
|
+
swagger = {}
|
39
|
+
|
40
|
+
return swagger unless swagger_attributes
|
41
|
+
|
42
|
+
swagger_attributes.each do |property|
|
43
|
+
obj = self.send(property)
|
44
|
+
obj = swaggerify(obj)
|
45
|
+
|
46
|
+
swagger[property.to_s] = obj if !obj.nil?
|
47
|
+
end
|
48
|
+
|
49
|
+
swagger
|
50
|
+
end
|
51
|
+
|
52
|
+
def swaggerify(object)
|
53
|
+
return nil if object.nil?
|
54
|
+
|
55
|
+
return object.to_swagger if object.respond_to?(:to_swagger)
|
56
|
+
|
57
|
+
if object.is_a?(Array)
|
58
|
+
object.map! do |element|
|
59
|
+
swaggerify(element)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
object
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'ruby-swagger/data/document'
|
2
|
+
|
3
|
+
module Swagger
|
4
|
+
class Template
|
5
|
+
|
6
|
+
def self.generate
|
7
|
+
swagger_doc = Swagger::Data::Document.new
|
8
|
+
|
9
|
+
if defined?(Rails)
|
10
|
+
swagger_doc.info.title = Rails.application.class.name.split('::').first.underscore
|
11
|
+
swagger_doc.info.description = Rails.application.class.name.split('::').first.underscore
|
12
|
+
end
|
13
|
+
|
14
|
+
swagger_doc.host = 'localhost:80'
|
15
|
+
swagger_doc.basePath = '/api/v1'
|
16
|
+
|
17
|
+
swagger_doc.schemes = ['https', 'http']
|
18
|
+
swagger_doc.produces = ['application/json']
|
19
|
+
swagger_doc.consumes = ['application/json']
|
20
|
+
|
21
|
+
swagger_doc.info.contact = Swagger::Data::Contact.new
|
22
|
+
swagger_doc.info.license = Swagger::Data::License.new
|
23
|
+
swagger_doc.info.termsOfService = 'https://localhost/tos.html'
|
24
|
+
|
25
|
+
swagger_doc
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,125 @@
|
|
1
|
+
require 'ruby-swagger/io/file_system'
|
2
|
+
require 'ruby-swagger/grape/grape_template'
|
3
|
+
|
4
|
+
namespace :swagger do
|
5
|
+
|
6
|
+
namespace :grape do
|
7
|
+
|
8
|
+
unless defined?(Rails)
|
9
|
+
task :environment do
|
10
|
+
# for non-rails environment, we do not load the env
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
desc 'Generate a swagger meta documentation from Grape API definition and store it under doc/swagger'
|
15
|
+
task :generate_doc, [:base_class] => :environment do |t, args|
|
16
|
+
if args[:base_class].nil?
|
17
|
+
STDERR.puts "You need to pass a base class for your API"
|
18
|
+
STDERR.puts "For example: rake 'swagger:grape:generate_doc[ApiBase]'"
|
19
|
+
exit -1
|
20
|
+
end
|
21
|
+
|
22
|
+
puts "Exporting from Grape - base class #{args[:base_class]}"
|
23
|
+
|
24
|
+
swagger_doc = Swagger::Grape::Template.generate(Module.const_get(args[:base_class]))
|
25
|
+
|
26
|
+
# Get path data from Grape
|
27
|
+
|
28
|
+
Swagger::IO::FileSystem.new(swagger_doc).write!
|
29
|
+
puts "You should check your swagger meta documentation under #{Swagger::IO::FileSystem.default_path}"
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
desc 'Generate a swagger 2.0-compatible documentation from the metadata stored into doc/swagger'
|
35
|
+
task :compile_doc do
|
36
|
+
puts "Compiling documentation"
|
37
|
+
|
38
|
+
Swagger::IO::FileSystem.new(Swagger::IO::FileSystem.read).compile!
|
39
|
+
|
40
|
+
puts "Done. Your documentation file is #{Swagger::IO::FileSystem.default_path}/swagger.json"
|
41
|
+
end
|
42
|
+
|
43
|
+
desc 'Build an API client given the swagger definition in doc/swagger/swagger.json'
|
44
|
+
namespace :generate_client do
|
45
|
+
|
46
|
+
def build_client(language)
|
47
|
+
unless File.exists?('./doc/swagger/swagger.json')
|
48
|
+
STDERR.puts "File ./doc/swagger/swagger.json does not exist"
|
49
|
+
exit -1
|
50
|
+
end
|
51
|
+
|
52
|
+
unless File.exists?('vendor/swagger-codegen-cli.jar')
|
53
|
+
STDERR.puts "Swagger codegen does not exist, downloading it now..."
|
54
|
+
Dir.mkdir('./vendor') unless Dir.exists?('./vendor')
|
55
|
+
|
56
|
+
`wget -O ./vendor/swagger-codegen-cli.jar https://s3-us-west-2.amazonaws.com/tunamelt-production/swagger-codegen/swagger-codegen-cli.jar`
|
57
|
+
end
|
58
|
+
|
59
|
+
puts "Generating #{language} client (output in api_client/#{language})"
|
60
|
+
|
61
|
+
FileUtils.rm_rf("./api_client/#{language}") if Dir.exists?("./api_client/#{language}")
|
62
|
+
|
63
|
+
`java -jar ./vendor/swagger-codegen-cli.jar generate \
|
64
|
+
-i ./doc/swagger/swagger.json \
|
65
|
+
-l #{language} \
|
66
|
+
-o api_client/#{language}`
|
67
|
+
end
|
68
|
+
|
69
|
+
desc 'Build the Ruby API client given the swagger definition in doc/swagger/swagger.json'
|
70
|
+
task :ruby do
|
71
|
+
build_client 'ruby'
|
72
|
+
end
|
73
|
+
|
74
|
+
desc 'Build the Java API client given the swagger definition in doc/swagger/swagger.json'
|
75
|
+
task :java do
|
76
|
+
build_client 'java'
|
77
|
+
end
|
78
|
+
|
79
|
+
desc 'Build the Scala API client given the swagger definition in doc/swagger/swagger.json'
|
80
|
+
task :scala do
|
81
|
+
build_client 'scala'
|
82
|
+
end
|
83
|
+
|
84
|
+
desc 'Build the Python API client given the swagger definition in doc/swagger/swagger.json'
|
85
|
+
task :python do
|
86
|
+
build_client 'python'
|
87
|
+
end
|
88
|
+
|
89
|
+
desc 'Build the Python 3 API client given the swagger definition in doc/swagger/swagger.json'
|
90
|
+
task :python_3 do
|
91
|
+
build_client 'python'
|
92
|
+
end
|
93
|
+
|
94
|
+
desc 'Build the PHP API client given the swagger definition in doc/swagger/swagger.json'
|
95
|
+
task :php do
|
96
|
+
build_client 'php'
|
97
|
+
end
|
98
|
+
|
99
|
+
desc 'Build the Perl API client given the swagger definition in doc/swagger/swagger.json'
|
100
|
+
task :perl do
|
101
|
+
build_client 'perl'
|
102
|
+
end
|
103
|
+
|
104
|
+
desc 'Build the ObjectiveC API client given the swagger definition in doc/swagger/swagger.json'
|
105
|
+
task :objective_c do
|
106
|
+
build_client 'objc'
|
107
|
+
end
|
108
|
+
|
109
|
+
desc 'Build the C# API client given the swagger definition in doc/swagger/swagger.json'
|
110
|
+
task :c_sharp do
|
111
|
+
build_client 'csharp'
|
112
|
+
end
|
113
|
+
|
114
|
+
desc 'Build the Android API client given the swagger definition in doc/swagger/swagger.json'
|
115
|
+
task :android do
|
116
|
+
build_client 'android'
|
117
|
+
end
|
118
|
+
|
119
|
+
desc 'Build all the API clients'
|
120
|
+
task :all => [:ruby, :java, :python, :python_3, :php, :perl, :objective_c, :c_sharp, :android]
|
121
|
+
|
122
|
+
task :default => [:all]
|
123
|
+
|
124
|
+
end
|
125
|
+
end
|
metadata
ADDED
@@ -0,0 +1,176 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ruby-swagger
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Luca Bonmassar
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-07-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: addressable
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.9.2
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.9.2
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: grape
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: grape-entity
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rack-test
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description: |-
|
98
|
+
A super simple library to read or create (Swagger)[http://swagger.io/] API documents.
|
99
|
+
This is the engine used in other gems to translate API definitions (grape, rails) into Swagger definitions.
|
100
|
+
email:
|
101
|
+
- luca@gild.com
|
102
|
+
executables: []
|
103
|
+
extensions: []
|
104
|
+
extra_rdoc_files: []
|
105
|
+
files:
|
106
|
+
- lib/ruby-swagger.rb
|
107
|
+
- lib/ruby-swagger/data/contact.rb
|
108
|
+
- lib/ruby-swagger/data/definitions.rb
|
109
|
+
- lib/ruby-swagger/data/document.rb
|
110
|
+
- lib/ruby-swagger/data/example.rb
|
111
|
+
- lib/ruby-swagger/data/external_documentation.rb
|
112
|
+
- lib/ruby-swagger/data/header.rb
|
113
|
+
- lib/ruby-swagger/data/headers.rb
|
114
|
+
- lib/ruby-swagger/data/info.rb
|
115
|
+
- lib/ruby-swagger/data/items.rb
|
116
|
+
- lib/ruby-swagger/data/license.rb
|
117
|
+
- lib/ruby-swagger/data/mime.rb
|
118
|
+
- lib/ruby-swagger/data/operation.rb
|
119
|
+
- lib/ruby-swagger/data/parameter.rb
|
120
|
+
- lib/ruby-swagger/data/parameters.rb
|
121
|
+
- lib/ruby-swagger/data/path.rb
|
122
|
+
- lib/ruby-swagger/data/paths.rb
|
123
|
+
- lib/ruby-swagger/data/reference.rb
|
124
|
+
- lib/ruby-swagger/data/response.rb
|
125
|
+
- lib/ruby-swagger/data/responses.rb
|
126
|
+
- lib/ruby-swagger/data/schema.rb
|
127
|
+
- lib/ruby-swagger/data/scopes.rb
|
128
|
+
- lib/ruby-swagger/data/security_definitions.rb
|
129
|
+
- lib/ruby-swagger/data/security_requirement.rb
|
130
|
+
- lib/ruby-swagger/data/security_scheme.rb
|
131
|
+
- lib/ruby-swagger/data/tag.rb
|
132
|
+
- lib/ruby-swagger/data/url.rb
|
133
|
+
- lib/ruby-swagger/data/xml_object.rb
|
134
|
+
- lib/ruby-swagger/grape/grape.rb
|
135
|
+
- lib/ruby-swagger/grape/grape_config.rb
|
136
|
+
- lib/ruby-swagger/grape/grape_presenter.rb
|
137
|
+
- lib/ruby-swagger/grape/grape_template.rb
|
138
|
+
- lib/ruby-swagger/grape/method.rb
|
139
|
+
- lib/ruby-swagger/grape/param.rb
|
140
|
+
- lib/ruby-swagger/grape/route_path.rb
|
141
|
+
- lib/ruby-swagger/grape/routes.rb
|
142
|
+
- lib/ruby-swagger/grape/type.rb
|
143
|
+
- lib/ruby-swagger/io/comparable.rb
|
144
|
+
- lib/ruby-swagger/io/definitions.rb
|
145
|
+
- lib/ruby-swagger/io/file_system.rb
|
146
|
+
- lib/ruby-swagger/io/paths.rb
|
147
|
+
- lib/ruby-swagger/io/security.rb
|
148
|
+
- lib/ruby-swagger/object.rb
|
149
|
+
- lib/ruby-swagger/railtie.rb
|
150
|
+
- lib/ruby-swagger/template.rb
|
151
|
+
- lib/tasks/swagger.rake
|
152
|
+
homepage: https://github.com/gild/ruby-swagger
|
153
|
+
licenses:
|
154
|
+
- MIT
|
155
|
+
metadata: {}
|
156
|
+
post_install_message:
|
157
|
+
rdoc_options: []
|
158
|
+
require_paths:
|
159
|
+
- lib
|
160
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - ">="
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
165
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
|
+
requirements:
|
167
|
+
- - ">="
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '0'
|
170
|
+
requirements: []
|
171
|
+
rubyforge_project:
|
172
|
+
rubygems_version: 2.2.2
|
173
|
+
signing_key:
|
174
|
+
specification_version: 4
|
175
|
+
summary: A ruby DSL to read/write Swagger API documents
|
176
|
+
test_files: []
|