rswag-ui 1.6.0 → 2.0.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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/rswag/ui/custom/custom_generator.rb +2 -2
  3. data/lib/generators/rswag/ui/install/templates/rswag-ui.rb +1 -0
  4. data/lib/rswag/ui/configuration.rb +22 -4
  5. data/lib/rswag/ui/engine.rb +7 -10
  6. data/lib/rswag/ui/index.erb +103 -0
  7. data/lib/rswag/ui/middleware.rb +44 -0
  8. data/lib/tasks/rswag-ui_tasks.rake +12 -0
  9. metadata +6 -56
  10. data/app/controllers/rswag/ui/home_controller.rb +0 -11
  11. data/app/views/rswag/ui/home/index.html.erb +0 -126
  12. data/config/routes.rb +0 -3
  13. data/vendor/assets/components/swagger-ui/css/print.css.erb +0 -1367
  14. data/vendor/assets/components/swagger-ui/css/reset.css +0 -125
  15. data/vendor/assets/components/swagger-ui/css/screen.css.erb +0 -1494
  16. data/vendor/assets/components/swagger-ui/css/style.css.erb +0 -250
  17. data/vendor/assets/components/swagger-ui/css/typography.css.erb +0 -14
  18. data/vendor/assets/components/swagger-ui/fonts/DroidSans-Bold.ttf +0 -0
  19. data/vendor/assets/components/swagger-ui/fonts/DroidSans.ttf +0 -0
  20. data/vendor/assets/components/swagger-ui/images/collapse.gif +0 -0
  21. data/vendor/assets/components/swagger-ui/images/expand.gif +0 -0
  22. data/vendor/assets/components/swagger-ui/images/explorer_icons.png +0 -0
  23. data/vendor/assets/components/swagger-ui/images/favicon-16x16.png +0 -0
  24. data/vendor/assets/components/swagger-ui/images/favicon-32x32.png +0 -0
  25. data/vendor/assets/components/swagger-ui/images/favicon.ico +0 -0
  26. data/vendor/assets/components/swagger-ui/images/logo_small.png +0 -0
  27. data/vendor/assets/components/swagger-ui/images/pet_store_api.png +0 -0
  28. data/vendor/assets/components/swagger-ui/images/throbber.gif +0 -0
  29. data/vendor/assets/components/swagger-ui/images/wordnik_api.png +0 -0
  30. data/vendor/assets/components/swagger-ui/lang/ca.js +0 -53
  31. data/vendor/assets/components/swagger-ui/lang/en.js +0 -56
  32. data/vendor/assets/components/swagger-ui/lang/es.js +0 -53
  33. data/vendor/assets/components/swagger-ui/lang/fr.js +0 -54
  34. data/vendor/assets/components/swagger-ui/lang/geo.js +0 -56
  35. data/vendor/assets/components/swagger-ui/lang/it.js +0 -52
  36. data/vendor/assets/components/swagger-ui/lang/ja.js +0 -53
  37. data/vendor/assets/components/swagger-ui/lang/ko-kr.js +0 -53
  38. data/vendor/assets/components/swagger-ui/lang/pl.js +0 -53
  39. data/vendor/assets/components/swagger-ui/lang/pt.js +0 -53
  40. data/vendor/assets/components/swagger-ui/lang/ru.js +0 -56
  41. data/vendor/assets/components/swagger-ui/lang/tr.js +0 -53
  42. data/vendor/assets/components/swagger-ui/lang/translator.js +0 -39
  43. data/vendor/assets/components/swagger-ui/lang/zh-cn.js +0 -53
  44. data/vendor/assets/components/swagger-ui/lib/backbone-min.js +0 -15
  45. data/vendor/assets/components/swagger-ui/lib/es5-shim.js +0 -2065
  46. data/vendor/assets/components/swagger-ui/lib/handlebars-4.0.5.js +0 -4608
  47. data/vendor/assets/components/swagger-ui/lib/highlight.9.1.0.pack.js +0 -2
  48. data/vendor/assets/components/swagger-ui/lib/highlight.9.1.0.pack_extended.js +0 -34
  49. data/vendor/assets/components/swagger-ui/lib/jquery-1.8.0.min.js +0 -2
  50. data/vendor/assets/components/swagger-ui/lib/jquery.ba-bbq.min.js +0 -18
  51. data/vendor/assets/components/swagger-ui/lib/jquery.slideto.min.js +0 -1
  52. data/vendor/assets/components/swagger-ui/lib/jquery.wiggle.min.js +0 -8
  53. data/vendor/assets/components/swagger-ui/lib/js-yaml.min.js +0 -3
  54. data/vendor/assets/components/swagger-ui/lib/jsoneditor.min.js +0 -11
  55. data/vendor/assets/components/swagger-ui/lib/lodash.min.js +0 -102
  56. data/vendor/assets/components/swagger-ui/lib/marked.js +0 -1272
  57. data/vendor/assets/components/swagger-ui/lib/object-assign-pollyfill.js +0 -23
  58. data/vendor/assets/components/swagger-ui/lib/sanitize-html.min.js +0 -6
  59. data/vendor/assets/components/swagger-ui/lib/swagger-oauth.js +0 -347
  60. data/vendor/assets/components/swagger-ui/o2c.html +0 -20
  61. data/vendor/assets/components/swagger-ui/swagger-ui.js +0 -24993
  62. data/vendor/assets/components/swagger-ui/swagger-ui.min.js +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 72bb3ce1fa7c6268b6e9183f07a3e1ab89f792a5ed081d192df0726030da9de5
4
- data.tar.gz: a96655aa7933a64100c2027c15ca0d12e31a7ab78c05545ebcb3cea0edac6daa
3
+ metadata.gz: 0ef5c28b235cad0e1e0209a710e43f1b061509a947792c26e69a56f9f366be3b
4
+ data.tar.gz: ce7ac5d67c50e5b11f6bf4aadc75d73aefdb3a95401c9e7e0e38b4919f534c7b
5
5
  SHA512:
6
- metadata.gz: 00b4dc7dd1cfbc2eff39b74d47d7f4a11018a1d7fd44d62084c9dfd2097fbf71be42f450b2745bf9c76e2d624a2b9f09290fe916fca3719cb4bf4b401a262844
7
- data.tar.gz: d792ce38e539fc11982cb3c0b3ab85b98c73eb0ba1b636a9f4906feb85a15122d4325ebde2ee4ceb8f18ff69689e3643774905985eed5cbd464573379202b813
6
+ metadata.gz: 29ae516901143f7032353171928c69c8164e6fbd36a4ebb7385cc69e1cc6d3a49b5ef160c3d9fcb21562983344f0253e2fff5d741aadece63a98472a522ced34
7
+ data.tar.gz: bb10473e1f3d883b9cd9d2a590b39d3ddf2141f2b4f285cda10abf6ad12c7ad3274e1984a18cb6baf17597ee0f89eea31d1b63308cd1bfb31da8a6d51f208d4f
@@ -3,10 +3,10 @@ require 'rails/generators'
3
3
  module Rswag
4
4
  module Ui
5
5
  class CustomGenerator < Rails::Generators::Base
6
- source_root File.expand_path('../../../../../../app/views/rswag/ui/home', __FILE__)
6
+ source_root File.expand_path('../../../../../../lib/rswag/ui', __FILE__)
7
7
 
8
8
  def add_custom_index
9
- copy_file('index.html.erb', 'app/views/rswag/ui/home/index.html.erb')
9
+ copy_file('index.erb', 'app/views/rswag/ui/home/index.html.erb')
10
10
  end
11
11
  end
12
12
  end
@@ -5,5 +5,6 @@ Rswag::Ui.configure do |c|
5
5
  # JSON endpoint and the second is a title that will be displayed in the document selector
6
6
  # NOTE: If you're using rspec-api to expose Swagger files (under swagger_root) as JSON endpoints,
7
7
  # then the list below should correspond to the relative paths for those endpoints
8
+
8
9
  c.swagger_endpoint '/api-docs/v1/swagger.json', 'API V1 Docs'
9
10
  end
@@ -3,14 +3,32 @@ require 'ostruct'
3
3
  module Rswag
4
4
  module Ui
5
5
  class Configuration
6
- attr_reader :swagger_endpoints
6
+ attr_reader :template_locations
7
+ attr_accessor :config_object
8
+ attr_accessor :oauth_config_object
9
+ attr_reader :assets_root
7
10
 
8
11
  def initialize
9
- @swagger_endpoints = []
12
+ @template_locations = [
13
+ # preffered override location
14
+ "#{Rack::Directory.new('').root}/swagger/index.erb",
15
+ # backwards compatible override location
16
+ "#{Rack::Directory.new('').root}/app/views/rswag/ui/home/index.html.erb",
17
+ # default location
18
+ File.expand_path('../index.erb', __FILE__)
19
+ ]
20
+ @assets_root = File.expand_path('../../../../node_modules/swagger-ui-dist', __FILE__)
21
+ @config_object = {}
22
+ @oauth_config_object = {}
10
23
  end
11
24
 
12
- def swagger_endpoint(path, title)
13
- @swagger_endpoints << OpenStruct.new(path: path, title: title)
25
+ def swagger_endpoint(url, name)
26
+ @config_object[:urls] ||= []
27
+ @config_object[:urls] << { url: url, name: name }
28
+ end
29
+
30
+ def get_binding
31
+ binding
14
32
  end
15
33
  end
16
34
  end
@@ -1,19 +1,16 @@
1
+ require 'rswag/ui/middleware'
2
+
1
3
  module Rswag
2
4
  module Ui
3
5
  class Engine < ::Rails::Engine
4
6
  isolate_namespace Rswag::Ui
5
7
 
6
8
  initializer 'rswag-ui.initialize' do |app|
7
- if app.config.respond_to?(:assets)
8
- app.config.assets.precompile += [
9
- 'swagger-ui/css/*',
10
- 'swagger-ui/fonts/*',
11
- 'swagger-ui/images/*',
12
- 'swagger-ui/lang/*',
13
- 'swagger-ui/lib/*',
14
- 'swagger-ui/swagger-ui.min.js'
15
- ]
16
- end
9
+ middleware.use Rswag::Ui::Middleware, Rswag::Ui.config
10
+ end
11
+
12
+ rake_tasks do
13
+ load File.expand_path('../../../tasks/rswag-ui_tasks.rake', __FILE__)
17
14
  end
18
15
  end
19
16
  end
@@ -0,0 +1,103 @@
1
+ <!-- HTML for static distribution bundle build -->
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Swagger UI</title>
7
+ <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,700|Source+Code+Pro:300,600|Titillium+Web:400,600,700" rel="stylesheet">
8
+ <link rel="stylesheet" type="text/css" href="./swagger-ui.css" >
9
+ <link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" />
10
+ <link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />
11
+ <style>
12
+ html
13
+ {
14
+ box-sizing: border-box;
15
+ overflow: -moz-scrollbars-vertical;
16
+ overflow-y: scroll;
17
+ }
18
+ *,
19
+ *:before,
20
+ *:after
21
+ {
22
+ box-sizing: inherit;
23
+ }
24
+
25
+ body {
26
+ margin:0;
27
+ background: #fafafa;
28
+ }
29
+ </style>
30
+ </head>
31
+
32
+ <body>
33
+
34
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position:absolute;width:0;height:0">
35
+ <defs>
36
+ <symbol viewBox="0 0 20 20" id="unlocked">
37
+ <path d="M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V6h2v-.801C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8z"></path>
38
+ </symbol>
39
+
40
+ <symbol viewBox="0 0 20 20" id="locked">
41
+ <path d="M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8zM12 8H8V5.199C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8z"/>
42
+ </symbol>
43
+
44
+ <symbol viewBox="0 0 20 20" id="close">
45
+ <path d="M14.348 14.849c-.469.469-1.229.469-1.697 0L10 11.819l-2.651 3.029c-.469.469-1.229.469-1.697 0-.469-.469-.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-.469-.469-.469-1.228 0-1.697.469-.469 1.228-.469 1.697 0L10 8.183l2.651-3.031c.469-.469 1.228-.469 1.697 0 .469.469.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c.469.469.469 1.229 0 1.698z"/>
46
+ </symbol>
47
+
48
+ <symbol viewBox="0 0 20 20" id="large-arrow">
49
+ <path d="M13.25 10L6.109 2.58c-.268-.27-.268-.707 0-.979.268-.27.701-.27.969 0l7.83 7.908c.268.271.268.709 0 .979l-7.83 7.908c-.268.271-.701.27-.969 0-.268-.269-.268-.707 0-.979L13.25 10z"/>
50
+ </symbol>
51
+
52
+ <symbol viewBox="0 0 20 20" id="large-arrow-down">
53
+ <path d="M17.418 6.109c.272-.268.709-.268.979 0s.271.701 0 .969l-7.908 7.83c-.27.268-.707.268-.979 0l-7.908-7.83c-.27-.268-.27-.701 0-.969.271-.268.709-.268.979 0L10 13.25l7.418-7.141z"/>
54
+ </symbol>
55
+
56
+
57
+ <symbol viewBox="0 0 24 24" id="jump-to">
58
+ <path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"/>
59
+ </symbol>
60
+
61
+ <symbol viewBox="0 0 24 24" id="expand">
62
+ <path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>
63
+ </symbol>
64
+
65
+ </defs>
66
+ </svg>
67
+
68
+ <div id="swagger-ui"></div>
69
+
70
+ <!-- Workaround for https://github.com/swagger-api/swagger-editor/issues/1371 -->
71
+ <script>
72
+ if (window.navigator.userAgent.indexOf("Edge") > -1) {
73
+ console.log("Removing native Edge fetch in favor of swagger-ui's polyfill")
74
+ window.fetch = undefined;
75
+ }
76
+ </script>
77
+
78
+ <script src="./swagger-ui-bundle.js"> </script>
79
+ <script src="./swagger-ui-standalone-preset.js"> </script>
80
+ <script>
81
+ window.onload = function () {
82
+ var configObject = JSON.parse('<%= config_object.to_json %>');
83
+ var oauthConfigObject = JSON.parse('<%= oauth_config_object.to_json %>');
84
+
85
+ // Apply mandatory parameters
86
+ configObject.dom_id = "#swagger-ui";
87
+ configObject.presets = [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset];
88
+ configObject.layout = "StandaloneLayout";
89
+
90
+ // If oauth2RedirectUrl isn't specified, use the built-in default
91
+ if (!configObject.hasOwnProperty("oauth2RedirectUrl"))
92
+ configObject.oauth2RedirectUrl = window.location.href.replace("index.html", "oauth2-redirect.html");
93
+
94
+ // Build a system
95
+ const ui = SwaggerUIBundle(configObject);
96
+
97
+ // Apply OAuth config
98
+ ui.initOAuth(oauthConfigObject);
99
+ }
100
+ </script>
101
+ </body>
102
+
103
+ </html>
@@ -0,0 +1,44 @@
1
+ module Rswag
2
+ module Ui
3
+ class Middleware < Rack::Static
4
+
5
+ def initialize(app, config)
6
+ @config = config
7
+ super(app, urls: [ '' ], root: config.assets_root )
8
+ end
9
+
10
+ def call(env)
11
+ if base_path?(env)
12
+ redirect_uri = env['SCRIPT_NAME'].chomp('/') + '/index.html'
13
+ return [ 301, { 'Location' => redirect_uri }, [ ] ]
14
+ end
15
+
16
+ if index_path?(env)
17
+ return [ 200, { 'Content-Type' => 'text/html' }, [ render_template ] ]
18
+ end
19
+
20
+ super
21
+ end
22
+
23
+ private
24
+
25
+ def base_path?(env)
26
+ env['REQUEST_METHOD'] == "GET" && env['PATH_INFO'] == "/"
27
+ end
28
+
29
+ def index_path?(env)
30
+ env['REQUEST_METHOD'] == "GET" && env['PATH_INFO'] == "/index.html"
31
+ end
32
+
33
+ def render_template
34
+ file = File.new(template_filename)
35
+ template = ERB.new(file.read)
36
+ template.result(@config.get_binding)
37
+ end
38
+
39
+ def template_filename
40
+ @config.template_locations.find { |filename| File.exists?(filename) }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,12 @@
1
+ namespace :rswag do
2
+ namespace :ui do
3
+
4
+ desc 'TODO'
5
+ task :copy_assets, [ :dest ] do |t, args|
6
+ dest = args[:dest]
7
+ FileUtils.rm_r(dest, force: true)
8
+ FileUtils.mkdir_p(dest)
9
+ FileUtils.cp_r(Dir.glob("#{Rswag::Ui.config.assets_root}/{*.js,*.png,*.css}"), dest)
10
+ end
11
+ end
12
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rswag-ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richie Morris
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-24 00:00:00.000000000 Z
11
+ date: 2018-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -60,9 +60,6 @@ extra_rdoc_files: []
60
60
  files:
61
61
  - MIT-LICENSE
62
62
  - Rakefile
63
- - app/controllers/rswag/ui/home_controller.rb
64
- - app/views/rswag/ui/home/index.html.erb
65
- - config/routes.rb
66
63
  - lib/generators/rswag/ui/custom/USAGE
67
64
  - lib/generators/rswag/ui/custom/custom_generator.rb
68
65
  - lib/generators/rswag/ui/install/USAGE
@@ -71,56 +68,9 @@ files:
71
68
  - lib/rswag/ui.rb
72
69
  - lib/rswag/ui/configuration.rb
73
70
  - lib/rswag/ui/engine.rb
74
- - vendor/assets/components/swagger-ui/css/print.css.erb
75
- - vendor/assets/components/swagger-ui/css/reset.css
76
- - vendor/assets/components/swagger-ui/css/screen.css.erb
77
- - vendor/assets/components/swagger-ui/css/style.css.erb
78
- - vendor/assets/components/swagger-ui/css/typography.css.erb
79
- - vendor/assets/components/swagger-ui/fonts/DroidSans-Bold.ttf
80
- - vendor/assets/components/swagger-ui/fonts/DroidSans.ttf
81
- - vendor/assets/components/swagger-ui/images/collapse.gif
82
- - vendor/assets/components/swagger-ui/images/expand.gif
83
- - vendor/assets/components/swagger-ui/images/explorer_icons.png
84
- - vendor/assets/components/swagger-ui/images/favicon-16x16.png
85
- - vendor/assets/components/swagger-ui/images/favicon-32x32.png
86
- - vendor/assets/components/swagger-ui/images/favicon.ico
87
- - vendor/assets/components/swagger-ui/images/logo_small.png
88
- - vendor/assets/components/swagger-ui/images/pet_store_api.png
89
- - vendor/assets/components/swagger-ui/images/throbber.gif
90
- - vendor/assets/components/swagger-ui/images/wordnik_api.png
91
- - vendor/assets/components/swagger-ui/lang/ca.js
92
- - vendor/assets/components/swagger-ui/lang/en.js
93
- - vendor/assets/components/swagger-ui/lang/es.js
94
- - vendor/assets/components/swagger-ui/lang/fr.js
95
- - vendor/assets/components/swagger-ui/lang/geo.js
96
- - vendor/assets/components/swagger-ui/lang/it.js
97
- - vendor/assets/components/swagger-ui/lang/ja.js
98
- - vendor/assets/components/swagger-ui/lang/ko-kr.js
99
- - vendor/assets/components/swagger-ui/lang/pl.js
100
- - vendor/assets/components/swagger-ui/lang/pt.js
101
- - vendor/assets/components/swagger-ui/lang/ru.js
102
- - vendor/assets/components/swagger-ui/lang/tr.js
103
- - vendor/assets/components/swagger-ui/lang/translator.js
104
- - vendor/assets/components/swagger-ui/lang/zh-cn.js
105
- - vendor/assets/components/swagger-ui/lib/backbone-min.js
106
- - vendor/assets/components/swagger-ui/lib/es5-shim.js
107
- - vendor/assets/components/swagger-ui/lib/handlebars-4.0.5.js
108
- - vendor/assets/components/swagger-ui/lib/highlight.9.1.0.pack.js
109
- - vendor/assets/components/swagger-ui/lib/highlight.9.1.0.pack_extended.js
110
- - vendor/assets/components/swagger-ui/lib/jquery-1.8.0.min.js
111
- - vendor/assets/components/swagger-ui/lib/jquery.ba-bbq.min.js
112
- - vendor/assets/components/swagger-ui/lib/jquery.slideto.min.js
113
- - vendor/assets/components/swagger-ui/lib/jquery.wiggle.min.js
114
- - vendor/assets/components/swagger-ui/lib/js-yaml.min.js
115
- - vendor/assets/components/swagger-ui/lib/jsoneditor.min.js
116
- - vendor/assets/components/swagger-ui/lib/lodash.min.js
117
- - vendor/assets/components/swagger-ui/lib/marked.js
118
- - vendor/assets/components/swagger-ui/lib/object-assign-pollyfill.js
119
- - vendor/assets/components/swagger-ui/lib/sanitize-html.min.js
120
- - vendor/assets/components/swagger-ui/lib/swagger-oauth.js
121
- - vendor/assets/components/swagger-ui/o2c.html
122
- - vendor/assets/components/swagger-ui/swagger-ui.js
123
- - vendor/assets/components/swagger-ui/swagger-ui.min.js
71
+ - lib/rswag/ui/index.erb
72
+ - lib/rswag/ui/middleware.rb
73
+ - lib/tasks/rswag-ui_tasks.rake
124
74
  homepage: https://github.com/domaindrivendev/rswag
125
75
  licenses:
126
76
  - MIT
@@ -141,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
91
  version: '0'
142
92
  requirements: []
143
93
  rubyforge_project:
144
- rubygems_version: 2.7.6
94
+ rubygems_version: 2.7.7
145
95
  signing_key:
146
96
  specification_version: 4
147
97
  summary: A Rails Engine that includes swagger-ui and powers it from configured Swagger
@@ -1,11 +0,0 @@
1
- module Rswag
2
- module Ui
3
- class HomeController < ActionController::Base
4
-
5
- def index
6
- @swagger_endpoints = Rswag::Ui.config.swagger_endpoints
7
- render :index, layout: false
8
- end
9
- end
10
- end
11
- end
@@ -1,126 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="UTF-8">
5
- <title>Swagger UI</title>
6
- <link rel="icon" type="image/png" href="<%= asset_path 'swagger-ui/images/favicon-32x32.png' %>" sizes="32x32" />
7
- <link rel="icon" type="image/png" href="<%= asset_path 'swagger-ui/images/favicon-16x16.png' %>" sizes="16x16" />
8
- <link href="<%= asset_path 'swagger-ui/css/typography.css' %>" media='screen' rel='stylesheet' type='text/css'/>
9
- <link href="<%= asset_path 'swagger-ui/css/reset.css' %>" media='screen' rel='stylesheet' type='text/css'/>
10
- <link href="<%= asset_path 'swagger-ui/css/screen.css' %>" media='screen' rel='stylesheet' type='text/css'/>
11
- <link href="<%= asset_path 'swagger-ui/css/reset.css' %>" media='print' rel='stylesheet' type='text/css'/>
12
- <link href="<%= asset_path 'swagger-ui/css/print.css' %>" media='print' rel='stylesheet' type='text/css'/>
13
-
14
- <script src="<%= asset_path 'swagger-ui/lib/object-assign-pollyfill.js' %>" type='text/javascript'></script>
15
- <script src="<%= asset_path 'swagger-ui/lib/jquery-1.8.0.min.js' %>" type='text/javascript'></script>
16
- <script src="<%= asset_path 'swagger-ui/lib/jquery.slideto.min.js' %>" type='text/javascript'></script>
17
- <script src="<%= asset_path 'swagger-ui/lib/jquery.wiggle.min.js' %>" type='text/javascript'></script>
18
- <script src="<%= asset_path 'swagger-ui/lib/jquery.ba-bbq.min.js' %>" type='text/javascript'></script>
19
- <script src="<%= asset_path 'swagger-ui/lib/handlebars-4.0.5.js' %>" type='text/javascript'></script>
20
- <script src="<%= asset_path 'swagger-ui/lib/lodash.min.js' %>" type='text/javascript'></script>
21
- <script src="<%= asset_path 'swagger-ui/lib/backbone-min.js' %>" type='text/javascript'></script>
22
- <script src="<%= asset_path 'swagger-ui/swagger-ui.min.js' %>" type='text/javascript'></script>
23
- <script src="<%= asset_path 'swagger-ui/lib/highlight.9.1.0.pack.js' %>" type='text/javascript'></script>
24
- <script src="<%= asset_path 'swagger-ui/lib/highlight.9.1.0.pack_extended.js' %>" type='text/javascript'></script>
25
- <script src="<%= asset_path 'swagger-ui/lib/jsoneditor.min.js' %>" type='text/javascript'></script>
26
- <script src="<%= asset_path 'swagger-ui/lib/marked.js' %>" type='text/javascript'></script>
27
- <script src="<%= asset_path 'swagger-ui/lib/swagger-oauth.js' %>" type='text/javascript'></script>
28
-
29
- <!-- Some basic translations -->
30
- <!-- <script src="<%= asset_path 'swagger-ui/lang/translator.js' %>" type='text/javascript'></script> -->
31
- <!-- <script src="<%= asset_path 'swagger-ui/lang/ru.js' %>" type='text/javascript'></script> -->
32
- <!-- <script src="<%= asset_path 'swagger-ui/lang/en.js' %>" type='text/javascript'></script> -->
33
-
34
- <script type="text/javascript">
35
- $(function () {
36
- hljs.configure({
37
- highlightSizeThreshold: 5000
38
- });
39
-
40
- // Pre load translate...
41
- if(window.SwaggerTranslator) {
42
- window.SwaggerTranslator.translate();
43
- }
44
- window.swaggerUi = new SwaggerUi({
45
- url: '<%= @swagger_endpoints.first.path %>',
46
- dom_id: "swagger-ui-container",
47
- supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
48
- onComplete: function(swaggerApi, swaggerUi){
49
- if(typeof initOAuth == "function") {
50
- initOAuth({
51
- clientId: "your-client-id",
52
- clientSecret: "your-client-secret-if-required",
53
- realm: "your-realms",
54
- appName: "your-app-name",
55
- scopeSeparator: " ",
56
- additionalQueryStringParams: {}
57
- });
58
- }
59
-
60
- if(window.SwaggerTranslator) {
61
- window.SwaggerTranslator.translate();
62
- }
63
- },
64
- onFailure: function(data) {
65
- log("Unable to Load SwaggerUI");
66
- },
67
- docExpansion: "list",
68
- jsonEditor: false,
69
- defaultModelRendering: 'schema',
70
- showRequestHeaders: false
71
- });
72
-
73
- window.swaggerUi.load();
74
-
75
- function log() {
76
- if ('console' in window) {
77
- console.log.apply(console, arguments);
78
- }
79
- }
80
- });
81
- </script>
82
- </head>
83
-
84
- <body class="swagger-section">
85
- <div id='header'>
86
- <div class="swagger-ui-wrap">
87
- <a id="logo" href="http://swagger.io"><img class="logo__img" alt="swagger" height="30" width="30" src="<%= asset_path 'swagger-ui/images/logo_small.png' %>" /><span class="logo__title">swagger</span></a>
88
- <form id='api_selector'>
89
- <div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/></div>
90
- <div id='auth_container'></div>
91
- <select id="select_document">
92
- <% @swagger_endpoints.each do |endpoint| %>
93
- <option value='<%= endpoint.path %>'><%= endpoint.title %></option>
94
- <% end %>
95
- </select>
96
- <script type="text/javascript">
97
- // Refresh the swagger-ui when a new document is selected
98
- $('#select_document').change(function () {
99
- $('#input_baseUrl').val($(this).val());
100
- window.swaggerUi.headerView.showCustom();
101
- });
102
- </script>
103
- <style>
104
- #select_document {
105
- border: none;
106
- height: 1.85em;
107
- border-radius: 4px;
108
- -moz-border-radius: 4px;
109
- -webkit-border-radius: 4px;
110
- -o-border-radius: 4px;
111
- -ms-border-radius: 4px;
112
- -khtml-border-radius: 4px;
113
- font-size: 0.85em;
114
- font-weight: bold;
115
- color: white;
116
- background-color: #547f00;
117
- }
118
- </style>
119
- </form>
120
- </div>
121
- </div>
122
-
123
- <div id="message-bar" class="swagger-ui-wrap" data-sw-translate>&nbsp;</div>
124
- <div id="swagger-ui-container" class="swagger-ui-wrap"></div>
125
- </body>
126
- </html>