grape-swagger 0.7.1 → 0.7.2
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.
- data/VERSION +1 -1
- data/grape-swagger.gemspec +5 -3
- data/lib/grape-swagger.rb +3 -4
- data/spec/api_models_spec.rb +3 -3
- data/spec/default_api_spec.rb +2 -2
- data/spec/hide_api_spec.rb +4 -4
- data/spec/non_default_api_spec.rb +13 -6
- data/spec/simple_mounted_api_spec.rb +6 -6
- data/test/config.ru +2 -0
- data/test/nested_api.rb +30 -0
- metadata +5 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.7.
|
1
|
+
0.7.2
|
data/grape-swagger.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "grape-swagger"
|
8
|
-
s.version = "0.7.
|
8
|
+
s.version = "0.7.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Tim Vandecasteele"]
|
12
|
-
s.date = "2014-02-
|
12
|
+
s.date = "2014-02-06"
|
13
13
|
s.description = "A simple way to add proper auto generated documentation - that can be displayed with swagger - to your inline described grape API"
|
14
14
|
s.email = "tim.vandecasteele@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -38,7 +38,9 @@ Gem::Specification.new do |s|
|
|
38
38
|
"spec/hide_api_spec.rb",
|
39
39
|
"spec/non_default_api_spec.rb",
|
40
40
|
"spec/simple_mounted_api_spec.rb",
|
41
|
-
"spec/spec_helper.rb"
|
41
|
+
"spec/spec_helper.rb",
|
42
|
+
"test/config.ru",
|
43
|
+
"test/nested_api.rb"
|
42
44
|
]
|
43
45
|
s.homepage = "http://github.com/tim-vandecasteele/grape-swagger"
|
44
46
|
s.licenses = ["MIT"]
|
data/lib/grape-swagger.rb
CHANGED
@@ -93,11 +93,10 @@ module Grape
|
|
93
93
|
routes_array = routes.keys.map do |local_route|
|
94
94
|
next if routes[local_route].all?(&:route_hidden)
|
95
95
|
|
96
|
-
|
97
|
-
|
98
|
-
parsed_path += '.{format}' unless @@hide_format
|
96
|
+
url_base = parse_path(route.route_path.gsub('(.:format)', ''), route.route_version) if include_base_url
|
97
|
+
url_format = '.{format}' unless @@hide_format
|
99
98
|
{
|
100
|
-
:path =>
|
99
|
+
:path => "#{url_base}/#{local_route}#{url_format}",
|
101
100
|
#:description => "..."
|
102
101
|
}
|
103
102
|
end.compact
|
data/spec/api_models_spec.rb
CHANGED
@@ -50,9 +50,9 @@ describe "API Models" do
|
|
50
50
|
"produces" => ["application/json"],
|
51
51
|
"operations" => [],
|
52
52
|
"apis" => [
|
53
|
-
{ "path" => "/something.{format}" },
|
54
|
-
{ "path" => "/thing.{format}" },
|
55
|
-
{ "path" => "/swagger_doc.{format}" }
|
53
|
+
{ "path" => "/swagger_doc/something.{format}" },
|
54
|
+
{ "path" => "/swagger_doc/thing.{format}" },
|
55
|
+
{ "path" => "/swagger_doc/swagger_doc.{format}" }
|
56
56
|
]
|
57
57
|
}
|
58
58
|
end
|
data/spec/default_api_spec.rb
CHANGED
@@ -26,8 +26,8 @@ describe "Default API" do
|
|
26
26
|
"produces" => ["application/json"],
|
27
27
|
"operations" => [],
|
28
28
|
"apis" => [
|
29
|
-
{ "path" => "/something.{format}" },
|
30
|
-
{ "path" => "/swagger_doc.{format}" }
|
29
|
+
{ "path" => "/swagger_doc/something.{format}" },
|
30
|
+
{ "path" => "/swagger_doc/swagger_doc.{format}" }
|
31
31
|
]
|
32
32
|
}
|
33
33
|
end
|
data/spec/hide_api_spec.rb
CHANGED
@@ -34,8 +34,8 @@ describe "a hide mounted api" do
|
|
34
34
|
"produces" => ["application/xml", "application/json", "text/plain"],
|
35
35
|
"operations" => [],
|
36
36
|
"apis" => [
|
37
|
-
{ "path" => "/simple.{format}" },
|
38
|
-
{ "path" => "/swagger_doc.{format}" }
|
37
|
+
{ "path" => "/swagger_doc/simple.{format}" },
|
38
|
+
{ "path" => "/swagger_doc/swagger_doc.{format}" }
|
39
39
|
]
|
40
40
|
}
|
41
41
|
end
|
@@ -76,8 +76,8 @@ describe "a hide mounted api with same namespace" do
|
|
76
76
|
"produces" => ["application/xml", "application/json", "text/plain"],
|
77
77
|
"operations" => [],
|
78
78
|
"apis" => [
|
79
|
-
{ "path" => "/simple.{format}" },
|
80
|
-
{ "path" => "/swagger_doc.{format}" }
|
79
|
+
{ "path" => "/swagger_doc/simple.{format}" },
|
80
|
+
{ "path" => "/swagger_doc/swagger_doc.{format}" }
|
81
81
|
]
|
82
82
|
}
|
83
83
|
end
|
@@ -153,8 +153,8 @@ describe "options: " do
|
|
153
153
|
"produces" => ["application/xml", "application/json", "text/plain"],
|
154
154
|
"operations" => [],
|
155
155
|
"apis" => [
|
156
|
-
{ "path" => "/v1/something.{format}" },
|
157
|
-
{ "path" => "/v1/swagger_doc.{format}" }
|
156
|
+
{ "path" => "/v1/swagger_doc/something.{format}" },
|
157
|
+
{ "path" => "/v1/swagger_doc/swagger_doc.{format}" }
|
158
158
|
]
|
159
159
|
}
|
160
160
|
end
|
@@ -211,7 +211,7 @@ describe "options: " do
|
|
211
211
|
"produces" => ["application/xml", "application/json", "text/plain"],
|
212
212
|
"operations" => [],
|
213
213
|
"apis" => [
|
214
|
-
{ "path" => "/something.{format}" }
|
214
|
+
{ "path" => "/swagger_doc/something.{format}" }
|
215
215
|
]
|
216
216
|
}
|
217
217
|
end
|
@@ -326,6 +326,13 @@ describe "options: " do
|
|
326
326
|
def app; SimpleApiWithDifferentMount end
|
327
327
|
|
328
328
|
|
329
|
+
it "retrieves the given base-path on /api_doc" do
|
330
|
+
get '/api_doc.json'
|
331
|
+
JSON.parse(last_response.body)["apis"].each do |api|
|
332
|
+
api["path"].should start_with SimpleApiWithDifferentMount::MOUNT_PATH
|
333
|
+
end
|
334
|
+
end
|
335
|
+
|
329
336
|
it "retrieves the same given base-path for mounted-api" do
|
330
337
|
get '/api_doc/something.json'
|
331
338
|
JSON.parse(last_response.body)["apis"].each do |api|
|
@@ -500,12 +507,12 @@ describe "options: " do
|
|
500
507
|
"produces" => ["application/xml", "application/json", "text/plain"],
|
501
508
|
"operations" => [],
|
502
509
|
"apis" => [
|
503
|
-
{ "path" => "/first.{format}" }
|
510
|
+
{ "path" => "/first/swagger_doc/first.{format}" }
|
504
511
|
]
|
505
512
|
}
|
506
513
|
end
|
507
514
|
|
508
|
-
it "retrieves the
|
515
|
+
it "retrieves the second swagger-documentation on /second/swagger_doc" do
|
509
516
|
get '/second/swagger_doc.json'
|
510
517
|
JSON.parse(last_response.body).should == {
|
511
518
|
"apiVersion" => "0.1",
|
@@ -515,7 +522,7 @@ describe "options: " do
|
|
515
522
|
"produces" => ["application/xml", "application/json", "text/plain"],
|
516
523
|
"operations" => [],
|
517
524
|
"apis" => [
|
518
|
-
{ "path" => "/second.{format}" }
|
525
|
+
{ "path" => "/second/swagger_doc/second.{format}" }
|
519
526
|
]
|
520
527
|
}
|
521
528
|
end
|
@@ -76,12 +76,12 @@ describe "a simple mounted api" do
|
|
76
76
|
"produces" => ["application/xml", "application/json", "text/plain"],
|
77
77
|
"operations" => [],
|
78
78
|
"apis" => [
|
79
|
-
{ "path" => "/simple.{format}" },
|
80
|
-
{ "path" => "/simple-test.{format}" },
|
81
|
-
{ "path" => "/simple_with_headers.{format}" },
|
82
|
-
{ "path" => "/items.{format}" },
|
83
|
-
{ "path" => "/custom.{format}" },
|
84
|
-
{ "path" => "/swagger_doc.{format}" }
|
79
|
+
{ "path" => "/swagger_doc/simple.{format}" },
|
80
|
+
{ "path" => "/swagger_doc/simple-test.{format}" },
|
81
|
+
{ "path" => "/swagger_doc/simple_with_headers.{format}" },
|
82
|
+
{ "path" => "/swagger_doc/items.{format}" },
|
83
|
+
{ "path" => "/swagger_doc/custom.{format}" },
|
84
|
+
{ "path" => "/swagger_doc/swagger_doc.{format}" }
|
85
85
|
]
|
86
86
|
}
|
87
87
|
end
|
data/test/config.ru
ADDED
data/test/nested_api.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'grape'
|
2
|
+
require '../lib/grape-swagger'
|
3
|
+
|
4
|
+
class SimpleNestedApi < Grape::API
|
5
|
+
desc "Nested root"
|
6
|
+
get 'index' do
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
class SimpleMountedApi < Grape::API
|
11
|
+
mount SimpleNestedApi => '/nested'
|
12
|
+
desc "Document root"
|
13
|
+
get 'index' do
|
14
|
+
end
|
15
|
+
|
16
|
+
add_swagger_documentation mount_path: '/simple/swagger_doc'
|
17
|
+
end
|
18
|
+
|
19
|
+
class OtherSimpleMountedApi < Grape::API
|
20
|
+
desc "other simple mounted api root"
|
21
|
+
get 'index' do
|
22
|
+
end
|
23
|
+
|
24
|
+
add_swagger_documentation mount_path: '/other_simple/swagger_doc'
|
25
|
+
end
|
26
|
+
|
27
|
+
class SimpleApi < Grape::API
|
28
|
+
mount SimpleMountedApi => '/api'
|
29
|
+
mount OtherSimpleMountedApi => '/other_api'
|
30
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grape-swagger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-02-
|
12
|
+
date: 2014-02-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: grape
|
@@ -202,6 +202,8 @@ files:
|
|
202
202
|
- spec/non_default_api_spec.rb
|
203
203
|
- spec/simple_mounted_api_spec.rb
|
204
204
|
- spec/spec_helper.rb
|
205
|
+
- test/config.ru
|
206
|
+
- test/nested_api.rb
|
205
207
|
homepage: http://github.com/tim-vandecasteele/grape-swagger
|
206
208
|
licenses:
|
207
209
|
- MIT
|
@@ -217,7 +219,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
217
219
|
version: '0'
|
218
220
|
segments:
|
219
221
|
- 0
|
220
|
-
hash: -
|
222
|
+
hash: -17008049882572761
|
221
223
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
222
224
|
none: false
|
223
225
|
requirements:
|