swagger_yard-rails 0.1.0 → 0.2.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 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