swagger_yard-rails 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/CHANGELOG.md +10 -0
- data/Gemfile +0 -3
- data/README.md +24 -0
- data/{lib → app/controllers}/swagger_yard/rails/application_controller.rb +0 -0
- data/app/controllers/swagger_yard/rails/swagger_controller.rb +14 -0
- data/app/views/swagger_yard/rails/swagger/doc.html.erb +43 -0
- data/config/routes.rb +6 -2
- data/lib/swagger_yard/rails.rb +0 -2
- data/lib/swagger_yard/rails/engine.rb +11 -0
- data/lib/swagger_yard/rails/tasks.rake +7 -0
- data/lib/swagger_yard/rails/version.rb +1 -1
- data/swagger_yard-rails.gemspec +3 -1
- metadata +36 -6
- data/lib/swagger_yard/rails/swagger_controller.rb +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c94696f2feaf6e856d6ea364376c58a27ee9a9ba
|
4
|
+
data.tar.gz: 08976e63e0846806c8c2c94303a1c7191fa882e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c12fefc9e29ebc4e924f8734ae2559f98f013aea0b85743f1a7faa7c472417d1dfe141f6f684f253cd8a2250e6f2cf38d6dd1fe3a0e82545d31a3a435c18ba7
|
7
|
+
data.tar.gz: afc7e95748615318a546b666ffb913753d8bdc61792c6bb6122d5be293c81458f053e1ab3f81c6b43c41bfcb194fd734abc40f6a733c3628b1acbe1dfad6a631
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -23,6 +23,30 @@ And then execute:
|
|
23
23
|
mount SwaggerYard::Rails::Engine, at: "/swagger"
|
24
24
|
```
|
25
25
|
|
26
|
+
### Add JS/CSS for UI ###
|
27
|
+
|
28
|
+
In your Gemfile (until the release of 2.1.3):
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
gem 'swagger-ui_rails2', github: '3scale/swagger-ui_rails', branch: 'dev-2.1.3'
|
32
|
+
```
|
33
|
+
|
34
|
+
[https://github.com/3scale/swagger-ui_rails/tree/dev-2.1.3#usage](https://github.com/3scale/swagger-ui_rails/tree/dev-2.1.3#usage)
|
35
|
+
|
36
|
+
in application.css:
|
37
|
+
|
38
|
+
```css
|
39
|
+
*= require swagger-ui2/index
|
40
|
+
```
|
41
|
+
|
42
|
+
in application.js:
|
43
|
+
|
44
|
+
```js
|
45
|
+
//= require swagger-ui2/index
|
46
|
+
```
|
47
|
+
|
48
|
+
**Note:** swagger_yard-rails will handle the template
|
49
|
+
|
26
50
|
### Configure SwaggerYard ###
|
27
51
|
|
28
52
|
```ruby
|
File without changes
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<script type="text/javascript">
|
2
|
+
$(function () {
|
3
|
+
var url = window.location.search.match(/url=([^&]+)/);
|
4
|
+
if (url && url.length > 1) {
|
5
|
+
url = decodeURIComponent(url[1]);
|
6
|
+
} else {
|
7
|
+
url = "/swagger/api.json";
|
8
|
+
}
|
9
|
+
|
10
|
+
window.swaggerUi = new SwaggerUi({
|
11
|
+
url: url,
|
12
|
+
dom_id:"swagger-ui-container",
|
13
|
+
supportHeaderParams: false,
|
14
|
+
supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
|
15
|
+
onComplete: function(swaggerApi, swaggerUi){
|
16
|
+
if(console) {
|
17
|
+
console.log("Loaded SwaggerUI")
|
18
|
+
console.log(swaggerApi);
|
19
|
+
console.log(swaggerUi);
|
20
|
+
}
|
21
|
+
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
|
22
|
+
},
|
23
|
+
onFailure: function(data) {
|
24
|
+
if(console) {
|
25
|
+
console.log("Unable to Load SwaggerUI");
|
26
|
+
console.log(data);
|
27
|
+
}
|
28
|
+
},
|
29
|
+
docExpansion: "none"
|
30
|
+
});
|
31
|
+
|
32
|
+
window.swaggerUi.load();
|
33
|
+
});
|
34
|
+
|
35
|
+
</script>
|
36
|
+
|
37
|
+
<div class="swagger-section">
|
38
|
+
<div id="message-bar" class="swagger-ui-wrap">
|
39
|
+
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
|
43
|
+
</div>
|
data/config/routes.rb
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
SwaggerYard::Rails::Engine.routes.draw do
|
2
|
-
|
3
|
-
|
2
|
+
get '/doc', to: 'swagger#doc'
|
3
|
+
|
4
|
+
scope default: {format: 'json'} do
|
5
|
+
get '/swagger', to: 'swagger#index'
|
6
|
+
get '/api', to: 'swagger#index'
|
7
|
+
end
|
4
8
|
end
|
data/lib/swagger_yard/rails.rb
CHANGED
@@ -5,6 +5,17 @@ module SwaggerYard
|
|
5
5
|
initializer "swagger_yard-rails.finisher_hook" do |app|
|
6
6
|
SwaggerYard.register_custom_yard_tags!
|
7
7
|
end
|
8
|
+
|
9
|
+
initializer "swagger_yard-rails.paths" do |app|
|
10
|
+
SwaggerYard.configure do |config|
|
11
|
+
config.controller_path = ::Rails.root + 'app/controllers/**/*'
|
12
|
+
config.model_path = ::Rails.root + 'app/models/**/*'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
rake_tasks do
|
17
|
+
load File.expand_path('../tasks.rake', __FILE__)
|
18
|
+
end
|
8
19
|
end
|
9
20
|
end
|
10
21
|
end
|
data/swagger_yard-rails.gemspec
CHANGED
@@ -28,11 +28,13 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
|
30
30
|
spec.add_dependency "rails", ">= 3.2.8"
|
31
|
-
spec.add_dependency "swagger_yard", "~> 0.
|
31
|
+
spec.add_dependency "swagger_yard", "~> 0.2.0"
|
32
32
|
|
33
33
|
spec.add_development_dependency "bundler", "~> 1.10"
|
34
34
|
spec.add_development_dependency "rake", "~> 10.0"
|
35
35
|
spec.add_development_dependency "rspec-rails"
|
36
|
+
spec.add_development_dependency "rspec-its"
|
37
|
+
spec.add_development_dependency "apivore"
|
36
38
|
spec.add_development_dependency "mocha"
|
37
39
|
spec.add_development_dependency "bourne"
|
38
40
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swagger_yard-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tony Pitale
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.2.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.2.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +80,34 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec-its
|
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
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: apivore
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
112
|
name: mocha
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -125,13 +153,15 @@ files:
|
|
125
153
|
- LICENSE.txt
|
126
154
|
- README.md
|
127
155
|
- Rakefile
|
156
|
+
- app/controllers/swagger_yard/rails/application_controller.rb
|
157
|
+
- app/controllers/swagger_yard/rails/swagger_controller.rb
|
158
|
+
- app/views/swagger_yard/rails/swagger/doc.html.erb
|
128
159
|
- bin/console
|
129
160
|
- bin/setup
|
130
161
|
- config/routes.rb
|
131
162
|
- lib/swagger_yard/rails.rb
|
132
|
-
- lib/swagger_yard/rails/application_controller.rb
|
133
163
|
- lib/swagger_yard/rails/engine.rb
|
134
|
-
- lib/swagger_yard/rails/
|
164
|
+
- lib/swagger_yard/rails/tasks.rake
|
135
165
|
- lib/swagger_yard/rails/version.rb
|
136
166
|
- swagger_yard-rails.gemspec
|
137
167
|
homepage: https://github.com/tpitale/swagger_yard-rails
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module SwaggerYard
|
2
|
-
module Rails
|
3
|
-
class SwaggerController < ApplicationController
|
4
|
-
layout false
|
5
|
-
|
6
|
-
def index
|
7
|
-
listing = resource_listing.to_h
|
8
|
-
listing.merge!("basePath" => request.url) if listing["basePath"].blank?
|
9
|
-
render :json => listing
|
10
|
-
end
|
11
|
-
|
12
|
-
def show
|
13
|
-
declaration = resource_listing.declaration_for("/#{params[:resource]}").to_h
|
14
|
-
|
15
|
-
declaration.merge!("basePath" => request.base_url + SwaggerYard.config.api_path) if declaration["basePath"].blank?
|
16
|
-
render :json => declaration
|
17
|
-
end
|
18
|
-
|
19
|
-
private
|
20
|
-
def resource_listing
|
21
|
-
SwaggerYard::ResourceListing.new(::Rails.root+'app/controllers/**/*.rb', ::Rails.root+'app/models/**/*.rb')
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|