swagger_ui_engine_rails7 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +65 -0
  3. data/MIT-LICENSE +20 -0
  4. data/Rakefile +28 -0
  5. data/app/assets/fonts/swagger_ui_engine/DroidSans-Bold.ttf +0 -0
  6. data/app/assets/fonts/swagger_ui_engine/DroidSans.ttf +0 -0
  7. data/app/assets/images/swagger_ui_engine/collapse.gif +0 -0
  8. data/app/assets/images/swagger_ui_engine/expand.gif +0 -0
  9. data/app/assets/images/swagger_ui_engine/explorer_icons.png +0 -0
  10. data/app/assets/images/swagger_ui_engine/favicon-16x16.png +0 -0
  11. data/app/assets/images/swagger_ui_engine/favicon-32x32.png +0 -0
  12. data/app/assets/images/swagger_ui_engine/favicon.ico +0 -0
  13. data/app/assets/images/swagger_ui_engine/logo_small.png +0 -0
  14. data/app/assets/images/swagger_ui_engine/pet_store_api.png +0 -0
  15. data/app/assets/images/swagger_ui_engine/throbber.gif +0 -0
  16. data/app/assets/images/swagger_ui_engine/wordnik_api.png +0 -0
  17. data/app/assets/javascripts/swagger_ui_engine/application.js +14 -0
  18. data/app/assets/javascripts/swagger_ui_engine/lang/ca.js +55 -0
  19. data/app/assets/javascripts/swagger_ui_engine/lang/de.js +58 -0
  20. data/app/assets/javascripts/swagger_ui_engine/lang/el.js +58 -0
  21. data/app/assets/javascripts/swagger_ui_engine/lang/en.js +58 -0
  22. data/app/assets/javascripts/swagger_ui_engine/lang/es.js +55 -0
  23. data/app/assets/javascripts/swagger_ui_engine/lang/fr.js +56 -0
  24. data/app/assets/javascripts/swagger_ui_engine/lang/geo.js +58 -0
  25. data/app/assets/javascripts/swagger_ui_engine/lang/it.js +54 -0
  26. data/app/assets/javascripts/swagger_ui_engine/lang/ja.js +58 -0
  27. data/app/assets/javascripts/swagger_ui_engine/lang/ko-kr.js +55 -0
  28. data/app/assets/javascripts/swagger_ui_engine/lang/pl.js +55 -0
  29. data/app/assets/javascripts/swagger_ui_engine/lang/pt.js +55 -0
  30. data/app/assets/javascripts/swagger_ui_engine/lang/ru.js +58 -0
  31. data/app/assets/javascripts/swagger_ui_engine/lang/tr.js +55 -0
  32. data/app/assets/javascripts/swagger_ui_engine/lang/translator.js +39 -0
  33. data/app/assets/javascripts/swagger_ui_engine/lang/zh-cn.js +58 -0
  34. data/app/assets/javascripts/swagger_ui_engine/lib/backbone-min.js +1 -0
  35. data/app/assets/javascripts/swagger_ui_engine/lib/es5-shim.js +1 -0
  36. data/app/assets/javascripts/swagger_ui_engine/lib/handlebars-4.0.5.js +3 -0
  37. data/app/assets/javascripts/swagger_ui_engine/lib/highlight.9.1.0.pack.js +1 -0
  38. data/app/assets/javascripts/swagger_ui_engine/lib/highlight.9.1.0.pack_extended.js +1 -0
  39. data/app/assets/javascripts/swagger_ui_engine/lib/jquery-1.8.0.min.js +3 -0
  40. data/app/assets/javascripts/swagger_ui_engine/lib/jquery.ba-bbq.min.js +1 -0
  41. data/app/assets/javascripts/swagger_ui_engine/lib/jquery.slideto.min.js +1 -0
  42. data/app/assets/javascripts/swagger_ui_engine/lib/jquery.wiggle.min.js +1 -0
  43. data/app/assets/javascripts/swagger_ui_engine/lib/js-yaml.min.js +2 -0
  44. data/app/assets/javascripts/swagger_ui_engine/lib/jsoneditor.min.js +5 -0
  45. data/app/assets/javascripts/swagger_ui_engine/lib/lodash.min.js +2 -0
  46. data/app/assets/javascripts/swagger_ui_engine/lib/marked.js +1 -0
  47. data/app/assets/javascripts/swagger_ui_engine/lib/object-assign-pollyfill.js +1 -0
  48. data/app/assets/javascripts/swagger_ui_engine/lib/sanitize-html.min.js +4 -0
  49. data/app/assets/javascripts/swagger_ui_engine/lib/swagger-oauth.js +1 -0
  50. data/app/assets/javascripts/swagger_ui_engine/swagger-ui.js +25344 -0
  51. data/app/assets/javascripts/swagger_ui_engine/swagger-ui.min.js +15 -0
  52. data/app/assets/javascripts/swagger_ui_engine/swagger.json +18 -0
  53. data/app/assets/stylesheets/swagger_ui_engine/application.css +6 -0
  54. data/app/assets/stylesheets/swagger_ui_engine/custom.css +7 -0
  55. data/app/assets/stylesheets/swagger_ui_engine/lib/print.css.erb +1377 -0
  56. data/app/assets/stylesheets/swagger_ui_engine/lib/reset.css +1 -0
  57. data/app/assets/stylesheets/swagger_ui_engine/lib/screen.css.erb +1504 -0
  58. data/app/assets/stylesheets/swagger_ui_engine/lib/style.css +1 -0
  59. data/app/assets/stylesheets/swagger_ui_engine/lib/typography.css.erb +14 -0
  60. data/app/assets/stylesheets/swagger_ui_engine/print.css +4 -0
  61. data/app/controllers/swagger_ui_engine/application_controller.rb +20 -0
  62. data/app/controllers/swagger_ui_engine/swagger_docs_controller.rb +51 -0
  63. data/app/helpers/swagger_ui_engine/auth_config_parser.rb +19 -0
  64. data/app/helpers/swagger_ui_engine/config_parser.rb +26 -0
  65. data/app/helpers/swagger_ui_engine/oauth_config_parser.rb +12 -0
  66. data/app/helpers/swagger_ui_engine/translation_helper.rb +16 -0
  67. data/app/views/swagger_ui_engine/layouts/swagger.html.erb +37 -0
  68. data/app/views/swagger_ui_engine/swagger_docs/index.html.erb +8 -0
  69. data/app/views/swagger_ui_engine/swagger_docs/oauth2.html.erb +20 -0
  70. data/app/views/swagger_ui_engine/swagger_docs/show.html.erb +66 -0
  71. data/config/routes.rb +12 -0
  72. data/lib/swagger_ui_engine_rails7/configuration.rb +24 -0
  73. data/lib/swagger_ui_engine_rails7/defaults.rb +19 -0
  74. data/lib/swagger_ui_engine_rails7/engine.rb +28 -0
  75. data/lib/swagger_ui_engine_rails7/version.rb +4 -0
  76. data/lib/swagger_ui_engine_rails7.rb +20 -0
  77. metadata +148 -0
@@ -0,0 +1 @@
1
+ .swagger-section #header a#logo{font-size:1.5em;font-weight:700;text-decoration:none;padding:20px 0 20px 40px}#text-head{font-size:80px;font-family:Roboto,sans-serif;color:#fff;float:right;margin-right:20%}.navbar-fixed-top .navbar-brand,.navbar-fixed-top .navbar-nav,.navbar-header{height:auto}.navbar-inverse{background-color:#000;border-color:#000}#navbar-brand{margin-left:20%}.navtext{font-size:10px}.h1,h1{font-size:60px}.navbar-default .navbar-header .navbar-brand{color:#a2dfee}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a{color:#393939;font-family:Arvo,serif;font-size:1.5em}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover{color:#000}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2{color:#525252;padding-left:0;display:block;clear:none;float:left;font-family:Arvo,serif;font-weight:700}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#0a0a0a}.container1{width:1500px;margin:auto;margin-top:0;background-repeat:no-repeat;background-position:-40px -20px;margin-bottom:210px}.container-inner{width:1200px;margin:auto;background-color:hsla(192,8%,88%,.75);padding-bottom:40px;padding-top:40px;border-radius:15px}.header-content{padding:0;width:1000px}.title1{font-size:80px;font-family:Vollkorn,serif;color:#404040;text-align:center;padding-top:40px;padding-bottom:100px}#icon{margin-top:-18px}.subtext{font-size:25px;font-style:italic;color:#08b;text-align:right;padding-right:250px}.bg-primary{background-color:#00468b}.navbar-default .nav>li>a,.navbar-default .nav>li>a:focus,.navbar-default .nav>li>a:focus:hover,.navbar-default .nav>li>a:hover{color:#08b}.text-faded{font-size:25px;font-family:Vollkorn,serif}.section-heading{font-family:Vollkorn,serif;font-size:45px;padding-bottom:10px}hr{border-color:#00468b;padding-bottom:10px}.description{margin-top:20px;padding-bottom:200px}.description li{font-family:Vollkorn,serif;font-size:25px;color:#525252;margin-left:28%;padding-top:5px}.gap{margin-top:200px}.troubleshootingtext{color:hsla(0,0%,100%,.7);padding-left:30%}.troubleshootingtext li{list-style-type:circle;font-size:25px;padding-bottom:5px}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.block.response_body.json:hover{cursor:pointer}.backdrop{color:blue}#myModal{height:100%}.modal-backdrop{bottom:0;position:fixed}.curl{padding:10px;font-family:Anonymous Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace;font-size:.9em;max-height:400px;margin-top:5px;overflow-y:auto;background-color:#fcf6db;border:1px solid #e5e0c6;border-radius:4px}.curl_title{font-size:1.1em;margin:0;padding:15px 0 5px;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;font-weight:500;line-height:1.1}.footer{display:none}.swagger-section .swagger-ui-wrap h2{padding:0}h2{margin:0;margin-bottom:5px}.markdown p,.swagger-section .swagger-ui-wrap .code{font-size:15px;font-family:Arvo,serif}.swagger-section .swagger-ui-wrap b{font-family:Arvo,serif}#signin:hover{cursor:pointer}.dropdown-menu{padding:15px}.navbar-right .dropdown-menu{left:0;right:auto}#signinbutton{width:100%;height:32px;font-size:13px;font-weight:700;color:#08b}.navbar-default .nav>li .details{color:#000;text-transform:none;font-size:15px;font-weight:400;font-family:Open Sans,sans-serif;font-style:italic;line-height:20px;top:-2px}.navbar-default .nav>li .details:hover{color:#000}#signout{width:100%;height:32px;font-size:13px;font-weight:700;color:#08b}
@@ -0,0 +1,14 @@
1
+ /* Google Font's Droid Sans */
2
+ @font-face {
3
+ font-family: 'Droid Sans';
4
+ font-style: normal;
5
+ font-weight: 400;
6
+ src: local('Droid Sans'), local('DroidSans'), url("<%= asset_path('swagger_ui_engine/DroidSans.ttf') %>") format('truetype');
7
+ }
8
+ /* Google Font's Droid Sans Bold */
9
+ @font-face {
10
+ font-family: 'Droid Sans';
11
+ font-style: normal;
12
+ font-weight: 700;
13
+ src: local('Droid Sans Bold'), local('DroidSans-Bold'), url("<%= asset_path('swagger_ui_engine/DroidSans-Bold.ttf') %>") format('truetype');
14
+ }
@@ -0,0 +1,4 @@
1
+ /*
2
+ *= require ./lib/reset.css
3
+ *= require ./lib/print.css
4
+ */
@@ -0,0 +1,20 @@
1
+ module SwaggerUiEngine
2
+ class ApplicationController < ActionController::Base
3
+ include SwaggerUiEngine::AuthConfigParser
4
+
5
+ protect_from_forgery with: :exception
6
+ layout false
7
+
8
+ before_action :authenticate_admin
9
+
10
+ protected
11
+
12
+ def authenticate_admin
13
+ return unless basic_authentication_enabled?
14
+
15
+ authenticate_or_request_with_http_basic do |username, password|
16
+ username == admin_username && password == admin_password
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,51 @@
1
+ module SwaggerUiEngine
2
+ class SwaggerDocsController < SwaggerUiEngine::ApplicationController
3
+ include SwaggerUiEngine::ConfigParser
4
+ include SwaggerUiEngine::OauthConfigParser
5
+
6
+ helper SwaggerUiEngine::TranslationHelper
7
+ layout 'swagger_ui_engine/layouts/swagger', except: %w(oauth2)
8
+
9
+ before_action :set_configs, :set_oauth_configs
10
+
11
+ def oauth2
12
+ end
13
+
14
+ def index
15
+ # backward compatibility for defining single doc url in strings
16
+ redirect_to single_swagger_doc_path if single_doc_url?
17
+ redirect_to swagger_doc_path(@swagger_url.keys.first) if single_doc_url_hash?
18
+ end
19
+
20
+ def show
21
+ @single_doc_url = single_doc_url? || single_doc_url_hash?
22
+ @swagger_url = @swagger_url[params[:id].to_sym] unless single_doc_url?
23
+ end
24
+
25
+ def single_doc
26
+ render 'show'
27
+ end
28
+
29
+ private
30
+
31
+ def set_configs
32
+ SwaggerUiEngine::DEFAULTS.keys.each do |key|
33
+ instance_variable_set("@#{key}", self.send("set_#{key}"))
34
+ end
35
+ end
36
+
37
+ def set_oauth_configs
38
+ SwaggerUiEngine::OAUTH2_DEFAULTS.keys.each do |key|
39
+ instance_variable_set("@#{key}", self.send("set_#{key}"))
40
+ end
41
+ end
42
+
43
+ def single_doc_url?
44
+ @swagger_url.is_a?(String)
45
+ end
46
+
47
+ def single_doc_url_hash?
48
+ @swagger_url.is_a?(Hash) && @swagger_url.size.eql?(1)
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,19 @@
1
+ module SwaggerUiEngine
2
+ module AuthConfigParser
3
+ def admin_username
4
+ configuration.admin_username
5
+ end
6
+
7
+ def admin_password
8
+ configuration.admin_password
9
+ end
10
+
11
+ def basic_authentication_enabled?
12
+ admin_username && admin_password
13
+ end
14
+
15
+ def configuration
16
+ SwaggerUiEngine.configuration
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,26 @@
1
+ module SwaggerUiEngine
2
+ module ConfigParser
3
+ SwaggerUiEngine::DEFAULTS.each do |default|
4
+ next if default.first.to_s.eql?('validator_url')
5
+
6
+ define_method("set_#{default.first}") do
7
+ # set_swagger_url set_doc_expansion
8
+ # set_json_editor set_model_rendering
9
+ # set_request_headers
10
+ configuration.send("#{default.first}") || default.last
11
+ end
12
+ end
13
+
14
+ def set_validator_url
15
+ validator_enabled? ? SwaggerUiEngine::DEFAULTS[:validator_url] : 'null'
16
+ end
17
+
18
+ def validator_enabled?
19
+ configuration.validator_enabled || false
20
+ end
21
+
22
+ def configuration
23
+ SwaggerUiEngine.configuration
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,12 @@
1
+ module SwaggerUiEngine
2
+ module OauthConfigParser
3
+ SwaggerUiEngine::OAUTH2_DEFAULTS.each do |default|
4
+ define_method("set_#{default.first}") do
5
+ # set_oauth_app_name set_oauth_client_id
6
+ # set_oauth_client_secret set_oauth_realm
7
+ # set_oauth_scope_separator set_oauth_query_string_params
8
+ configuration.send("#{default.first}") || default.last
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ module SwaggerUiEngine
2
+ module TranslationHelper
3
+ def load_translation_file
4
+ return unless translator_enabled?
5
+ javascript_include_tag('swagger_ui_engine/lang/translator', lang_file_path)
6
+ end
7
+
8
+ def lang_file_path
9
+ "swagger_ui_engine/lang/#{I18n.locale.to_s.downcase}.js"
10
+ end
11
+
12
+ def translator_enabled?
13
+ SwaggerUiEngine.configuration.translator_enabled
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,37 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta http-equiv="x-ua-compatible" content="IE=edge">
6
+ <title>Swagger UI</title>
7
+ <link rel="icon" type="image/png" href="<%= image_path('swagger_ui_engine/favicon-32x32.png') %>" sizes="32x32" />
8
+ <link rel="icon" type="image/png" href="<%= image_path('swagger_ui_engine/favicon-16x16.png') %>" sizes="16x16" />
9
+
10
+ <%= stylesheet_link_tag "swagger_ui_engine/application", media: "screen" %>
11
+ <%= stylesheet_link_tag "swagger_ui_engine/print", media: "print" %>
12
+
13
+ <%= javascript_include_tag "swagger_ui_engine/application" %>
14
+ <%= csrf_meta_tags %>
15
+ <%= yield :head %>
16
+ </head>
17
+
18
+ <body class="swagger-section">
19
+ <div id='header'>
20
+ <div class="swagger-ui-wrap">
21
+ <a id="logo" href="http://swagger.io"><img class="logo__img" alt="swagger" height="30" width="30" src="<%= image_path('swagger_ui_engine/logo_small.png') %>" /><span class="logo__title">swagger</span></a>
22
+
23
+ <form id='api_selector'>
24
+ <div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/></div>
25
+ <div id='auth_container'></div>
26
+ <div class='input'><a id="explore" class="header__btn" href="#" data-sw-translate>Explore</a></div>
27
+ </form>
28
+ </div>
29
+
30
+ </div>
31
+
32
+ <div id="message-bar" class="swagger-ui-wrap" data-sw-translate>&nbsp;</div>
33
+ <div id="swagger-ui-container" class="swagger-ui-wrap">
34
+ <%= yield %>
35
+ </div>
36
+ </body>
37
+ </html>
@@ -0,0 +1,8 @@
1
+ <ul>
2
+ <h2> API documentations: </h2>
3
+ <% @swagger_url.each_key do |k| %>
4
+ <li>
5
+ <h1> <%= link_to k, swagger_doc_path(k) %> </h1>
6
+ </li>
7
+ <% end %>
8
+ </ul>
@@ -0,0 +1,20 @@
1
+ <script>
2
+ var qp = null;
3
+ if(/code|token|error/.test(window.location.hash)) {
4
+ qp = location.hash.substring(1);
5
+ }
6
+ else {
7
+ qp = location.search.substring(1);
8
+ }
9
+ qp = qp ? JSON.parse('{"' + qp.replace(/&/g, '","').replace(/=/g,'":"') + '"}',
10
+ function(key, value) {
11
+ return key===""?value:decodeURIComponent(value) }
12
+ ):{}
13
+
14
+ if (window.opener.swaggerUiAuth.tokenUrl)
15
+ window.opener.processOAuthCode(qp);
16
+ else
17
+ window.opener.onOAuthComplete(qp);
18
+
19
+ window.close();
20
+ </script>
@@ -0,0 +1,66 @@
1
+ <% content_for(:head) do %>
2
+ <script type="text/javascript">
3
+ $(function () {
4
+ var url = window.location.search.match(/url=([^&]+)/);
5
+ if (url && url.length > 1) {
6
+ url = decodeURIComponent(url[1]);
7
+ } else {
8
+ url = "<%= @swagger_url %>";
9
+ }
10
+
11
+ hljs.configure({
12
+ highlightSizeThreshold: 5000
13
+ });
14
+
15
+ // Pre load translate...
16
+ if(window.SwaggerTranslator) {
17
+ window.SwaggerTranslator.translate();
18
+ }
19
+ window.swaggerUi = new SwaggerUi({
20
+ url: url,
21
+ validatorUrl: "<%= @validator_url %>",
22
+ oauth2RedirectUrl: "<%= oauth2_swagger_docs_url %>",
23
+ dom_id: "swagger-ui-container",
24
+ supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
25
+ onComplete: function(swaggerApi, swaggerUi){
26
+ if(typeof initOAuth == "function") {
27
+ initOAuth({
28
+ clientId: "<%= @oauth_client_id %>",
29
+ clientSecret: "<%= @oauth_client_secret %>",
30
+ realm: "<%= @oauth_realm %>",
31
+ appName: "<%= @oauth_app_name %>",
32
+ scopeSeparator: "<%= @oauth_scope_separator %>",
33
+ additionalQueryStringParams: "<%= @oauth_query_string_params %>"
34
+ });
35
+ }
36
+
37
+ if(window.SwaggerTranslator) {
38
+ window.SwaggerTranslator.translate();
39
+ }
40
+ },
41
+ onFailure: function(data) {
42
+ log("Unable to Load SwaggerUI");
43
+ },
44
+ docExpansion: "<%= @doc_expansion %>",
45
+ jsonEditor: "<%= @json_editor %>",
46
+ defaultModelRendering: "<%= @model_rendering %>",
47
+ showRequestHeaders: "<%= @request_headers %>",
48
+ showOperationIds: false
49
+ });
50
+
51
+ window.swaggerUi.load();
52
+
53
+ function log() {
54
+ if ('console' in window) {
55
+ console.log.apply(console, arguments);
56
+ }
57
+ }
58
+ });
59
+ </script>
60
+ <% end %>
61
+
62
+ <% unless @single_doc_url %>
63
+ <div class="swagger-ui-wrap">
64
+ <a href="<%= swagger_docs_path %>" class="swagger-return-link" data-sw-translate> Back to the list </a>
65
+ </div>
66
+ <% end %>
data/config/routes.rb ADDED
@@ -0,0 +1,12 @@
1
+ SwaggerUiEngineRails7::Engine.routes.draw do
2
+ scope format: false do
3
+ resources :swagger_docs, only: [:index, :show] do
4
+ collection do
5
+ get 'oauth2', to: 'swagger_docs#oauth2', format: false
6
+ end
7
+ end
8
+
9
+ get 'single_swagger_doc', to: 'swagger_docs#single_doc', format: false
10
+ root to: 'swagger_docs#index'
11
+ end
12
+ end
@@ -0,0 +1,24 @@
1
+ module SwaggerUiEngineRails7
2
+ class Configuration
3
+ # Configurable options
4
+ OPTIONS = %i(
5
+ admin_username
6
+ admin_password
7
+ doc_expansion
8
+ json_editor
9
+ model_rendering
10
+ oauth_client_id
11
+ oauth_client_secret
12
+ oauth_realm
13
+ oauth_app_name
14
+ oauth_scope_separator
15
+ oauth_query_string_params
16
+ request_headers
17
+ swagger_url
18
+ translator_enabled
19
+ validator_enabled
20
+ ).freeze
21
+
22
+ attr_accessor(*OPTIONS)
23
+ end
24
+ end
@@ -0,0 +1,19 @@
1
+ module SwaggerUiEngineRails7
2
+ DEFAULTS = {
3
+ swagger_url: 'http://petstore.swagger.io/v2/swagger.json',
4
+ doc_expansion: 'none',
5
+ json_editor: false,
6
+ model_rendering: 'schema',
7
+ request_headers: false,
8
+ validator_url: '//online.swagger.io/validator'
9
+ }.freeze
10
+
11
+ OAUTH2_DEFAULTS = {
12
+ oauth_app_name: 'your-app-name',
13
+ oauth_client_id: 'your-client-id',
14
+ oauth_client_secret: 'your-client-secret-if-required',
15
+ oauth_realm: 'your-realms',
16
+ oauth_scope_separator: ' ',
17
+ oauth_query_string_params: {}
18
+ }.freeze
19
+ end
@@ -0,0 +1,28 @@
1
+ require 'sassc/rails'
2
+
3
+ module SwaggerUiEngineRails7
4
+ class Engine < ::Rails::Engine
5
+ isolate_namespace SwaggerUiEngineRails7
6
+
7
+ config.to_prepare do
8
+ Rails.application.config.assets.precompile += %w[
9
+ swagger_ui_engine/lib/typography.css
10
+ swagger_ui_engine/lib/reset.css
11
+ swagger_ui_engine/lib/screen.css
12
+ swagger_ui_engine/lib/print.css
13
+ swagger_ui_engine/custom.css
14
+ swagger_ui_engine/print.css
15
+ swagger_ui_engine/logo_small.png
16
+ swagger_ui_engine/favicon-32x32.png
17
+ swagger_ui_engine/favicon-16x16.png
18
+ swagger_ui_engine/lang/*.js
19
+ swagger_ui_engine/DroidSans-Bold.ttf
20
+ swagger_ui_engine/DroidSans.ttf
21
+ swagger_ui_engine/application.js
22
+ swagger_ui_engine/application.css
23
+ ]
24
+
25
+ Rails.application.config.assets.paths << Rails.root.join('vendor', 'assets', 'fonts')
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,4 @@
1
+ module SwaggerUiEngineRails7
2
+ VERSION = '1.2.1'.freeze
3
+ SWAGGER_UI_VERSION = '2.2.10'.freeze
4
+ end
@@ -0,0 +1,20 @@
1
+ require 'rails/engine'
2
+ require 'action_controller/railtie'
3
+ require 'swagger_ui_engine_rails7/engine'
4
+ require 'swagger_ui_engine_rails7/version'
5
+ require 'swagger_ui_engine_rails7/configuration'
6
+ require 'swagger_ui_engine_rails7/defaults'
7
+
8
+ module SwaggerUiEngineRails7
9
+ class << self
10
+ delegate(*Configuration::OPTIONS, to: :configuration)
11
+
12
+ def configuration
13
+ @configuration ||= Configuration.new
14
+ end
15
+
16
+ def configure
17
+ yield configuration
18
+ end
19
+ end
20
+ end
metadata ADDED
@@ -0,0 +1,148 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: swagger_ui_engine_rails7
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.1
5
+ platform: ruby
6
+ authors:
7
+ - negabaro
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-03-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '6'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: sassc-rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Mount Swagger UI web console as Rails engine, configure it as you want
42
+ and write your API documentation in simple YAML files.
43
+ email:
44
+ - negabaro@gmail.com
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - CHANGELOG.md
50
+ - MIT-LICENSE
51
+ - Rakefile
52
+ - app/assets/fonts/swagger_ui_engine/DroidSans-Bold.ttf
53
+ - app/assets/fonts/swagger_ui_engine/DroidSans.ttf
54
+ - app/assets/images/swagger_ui_engine/collapse.gif
55
+ - app/assets/images/swagger_ui_engine/expand.gif
56
+ - app/assets/images/swagger_ui_engine/explorer_icons.png
57
+ - app/assets/images/swagger_ui_engine/favicon-16x16.png
58
+ - app/assets/images/swagger_ui_engine/favicon-32x32.png
59
+ - app/assets/images/swagger_ui_engine/favicon.ico
60
+ - app/assets/images/swagger_ui_engine/logo_small.png
61
+ - app/assets/images/swagger_ui_engine/pet_store_api.png
62
+ - app/assets/images/swagger_ui_engine/throbber.gif
63
+ - app/assets/images/swagger_ui_engine/wordnik_api.png
64
+ - app/assets/javascripts/swagger_ui_engine/application.js
65
+ - app/assets/javascripts/swagger_ui_engine/lang/ca.js
66
+ - app/assets/javascripts/swagger_ui_engine/lang/de.js
67
+ - app/assets/javascripts/swagger_ui_engine/lang/el.js
68
+ - app/assets/javascripts/swagger_ui_engine/lang/en.js
69
+ - app/assets/javascripts/swagger_ui_engine/lang/es.js
70
+ - app/assets/javascripts/swagger_ui_engine/lang/fr.js
71
+ - app/assets/javascripts/swagger_ui_engine/lang/geo.js
72
+ - app/assets/javascripts/swagger_ui_engine/lang/it.js
73
+ - app/assets/javascripts/swagger_ui_engine/lang/ja.js
74
+ - app/assets/javascripts/swagger_ui_engine/lang/ko-kr.js
75
+ - app/assets/javascripts/swagger_ui_engine/lang/pl.js
76
+ - app/assets/javascripts/swagger_ui_engine/lang/pt.js
77
+ - app/assets/javascripts/swagger_ui_engine/lang/ru.js
78
+ - app/assets/javascripts/swagger_ui_engine/lang/tr.js
79
+ - app/assets/javascripts/swagger_ui_engine/lang/translator.js
80
+ - app/assets/javascripts/swagger_ui_engine/lang/zh-cn.js
81
+ - app/assets/javascripts/swagger_ui_engine/lib/backbone-min.js
82
+ - app/assets/javascripts/swagger_ui_engine/lib/es5-shim.js
83
+ - app/assets/javascripts/swagger_ui_engine/lib/handlebars-4.0.5.js
84
+ - app/assets/javascripts/swagger_ui_engine/lib/highlight.9.1.0.pack.js
85
+ - app/assets/javascripts/swagger_ui_engine/lib/highlight.9.1.0.pack_extended.js
86
+ - app/assets/javascripts/swagger_ui_engine/lib/jquery-1.8.0.min.js
87
+ - app/assets/javascripts/swagger_ui_engine/lib/jquery.ba-bbq.min.js
88
+ - app/assets/javascripts/swagger_ui_engine/lib/jquery.slideto.min.js
89
+ - app/assets/javascripts/swagger_ui_engine/lib/jquery.wiggle.min.js
90
+ - app/assets/javascripts/swagger_ui_engine/lib/js-yaml.min.js
91
+ - app/assets/javascripts/swagger_ui_engine/lib/jsoneditor.min.js
92
+ - app/assets/javascripts/swagger_ui_engine/lib/lodash.min.js
93
+ - app/assets/javascripts/swagger_ui_engine/lib/marked.js
94
+ - app/assets/javascripts/swagger_ui_engine/lib/object-assign-pollyfill.js
95
+ - app/assets/javascripts/swagger_ui_engine/lib/sanitize-html.min.js
96
+ - app/assets/javascripts/swagger_ui_engine/lib/swagger-oauth.js
97
+ - app/assets/javascripts/swagger_ui_engine/swagger-ui.js
98
+ - app/assets/javascripts/swagger_ui_engine/swagger-ui.min.js
99
+ - app/assets/javascripts/swagger_ui_engine/swagger.json
100
+ - app/assets/stylesheets/swagger_ui_engine/application.css
101
+ - app/assets/stylesheets/swagger_ui_engine/custom.css
102
+ - app/assets/stylesheets/swagger_ui_engine/lib/print.css.erb
103
+ - app/assets/stylesheets/swagger_ui_engine/lib/reset.css
104
+ - app/assets/stylesheets/swagger_ui_engine/lib/screen.css.erb
105
+ - app/assets/stylesheets/swagger_ui_engine/lib/style.css
106
+ - app/assets/stylesheets/swagger_ui_engine/lib/typography.css.erb
107
+ - app/assets/stylesheets/swagger_ui_engine/print.css
108
+ - app/controllers/swagger_ui_engine/application_controller.rb
109
+ - app/controllers/swagger_ui_engine/swagger_docs_controller.rb
110
+ - app/helpers/swagger_ui_engine/auth_config_parser.rb
111
+ - app/helpers/swagger_ui_engine/config_parser.rb
112
+ - app/helpers/swagger_ui_engine/oauth_config_parser.rb
113
+ - app/helpers/swagger_ui_engine/translation_helper.rb
114
+ - app/views/swagger_ui_engine/layouts/swagger.html.erb
115
+ - app/views/swagger_ui_engine/swagger_docs/index.html.erb
116
+ - app/views/swagger_ui_engine/swagger_docs/oauth2.html.erb
117
+ - app/views/swagger_ui_engine/swagger_docs/show.html.erb
118
+ - config/routes.rb
119
+ - lib/swagger_ui_engine_rails7.rb
120
+ - lib/swagger_ui_engine_rails7/configuration.rb
121
+ - lib/swagger_ui_engine_rails7/defaults.rb
122
+ - lib/swagger_ui_engine_rails7/engine.rb
123
+ - lib/swagger_ui_engine_rails7/version.rb
124
+ homepage: https://github.com/negabaro/swagger_ui_engine_rails7
125
+ licenses:
126
+ - MIT
127
+ metadata: {}
128
+ post_install_message:
129
+ rdoc_options: []
130
+ require_paths:
131
+ - lib
132
+ required_ruby_version: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ required_rubygems_version: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ requirements: []
143
+ rubygems_version: 3.4.22
144
+ signing_key:
145
+ specification_version: 4
146
+ summary: Mountable Rails engine that serves Swagger UI for your API documentation
147
+ written in YAML files.
148
+ test_files: []