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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4f557fd9df6b77513d27bd07bf19a7916347c4d1
4
- data.tar.gz: c3b1447dc6cd7466acaaa223f087ad30e122521f
3
+ metadata.gz: c94696f2feaf6e856d6ea364376c58a27ee9a9ba
4
+ data.tar.gz: 08976e63e0846806c8c2c94303a1c7191fa882e0
5
5
  SHA512:
6
- metadata.gz: d539556a94a932b14b3a3f6878480084ff141d21d11270c2026471fa03600d648ea2607d63f60fe8be8135c054c257ed4a4869c9ea0c4b5f69cfcdd3d96fa559
7
- data.tar.gz: 025eba31f3fc8815fa3e4d3e8ae4983d94360ccb3e1ba37451d35deefb327c8e6988ca931841f73c57a8a5321dd0925ae85dcf9f7b893518d24c736c22e313f6
6
+ metadata.gz: 5c12fefc9e29ebc4e924f8734ae2559f98f013aea0b85743f1a7faa7c472417d1dfe141f6f684f253cd8a2250e6f2cf38d6dd1fe3a0e82545d31a3a435c18ba7
7
+ data.tar.gz: afc7e95748615318a546b666ffb913753d8bdc61792c6bb6122d5be293c81458f053e1ab3f81c6b43c41bfcb194fd734abc40f6a733c3628b1acbe1dfad6a631
data/.travis.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  language: ruby
2
+ sudo: false
2
3
  rvm:
3
4
  - 2.2.2
4
5
  before_install: gem install bundler -v 1.10.6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## SwaggerYard 0.2.0 -- 20-10-2015 ##
2
+
3
+ * Support for Swagger's Spec v2
4
+
5
+ *Nick Sieger <@nicksieger>*
6
+
7
+ * Remove support for Spec v1
8
+
9
+ *Tony Pitale <@tpitale>*
10
+
1
11
  ## SwaggerYard 0.1.0 -- 15-10-2015 ##
2
12
 
3
13
  * Add Engine from SwaggerYard
data/Gemfile CHANGED
@@ -2,6 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in swagger_yard-rails.gemspec
4
4
  gemspec
5
-
6
- # jquery-rails is used by the dummy application
7
- # gem "jquery-rails"
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
@@ -0,0 +1,14 @@
1
+ module SwaggerYard
2
+ module Rails
3
+ class SwaggerController < ApplicationController
4
+ layout 'application'
5
+
6
+ def doc
7
+ end
8
+
9
+ def index
10
+ render :json => Swagger.new.to_h, :layout => false
11
+ end
12
+ end
13
+ end
14
+ end
@@ -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
+ &nbsp;
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
- get '/api', to: 'swagger#index'
3
- get '/api/*resource', to: 'swagger#show'
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
@@ -7,5 +7,3 @@ module SwaggerYard
7
7
  end
8
8
 
9
9
  require "swagger_yard/rails/engine"
10
- require "swagger_yard/rails/application_controller"
11
- require "swagger_yard/rails/swagger_controller"
@@ -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
@@ -0,0 +1,7 @@
1
+ namespace :swagger do
2
+ task :json, [:filename] => :environment do |t, args|
3
+ File.open(args[:filename] || "swagger.json", "w") do |f|
4
+ f.puts JSON.pretty_generate(SwaggerYard::Swagger.new.swagger_v2)
5
+ end
6
+ end
7
+ end
@@ -1,5 +1,5 @@
1
1
  module SwaggerYard
2
2
  module Rails
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -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.1.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.1.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-19 00:00:00.000000000 Z
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.1.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.1.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/swagger_controller.rb
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