swagger_ui_engine_2 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 +7 -0
- data/README.md +28 -0
- data/Rakefile +8 -0
- data/app/assets/config/swagger_ui_engine_2/manifest.js +3 -0
- data/app/assets/images/swagger_ui_engine_2/favicon-16x16.png +0 -0
- data/app/assets/images/swagger_ui_engine_2/favicon-32x32.png +0 -0
- data/app/assets/javascripts/swagger_ui_engine_2/application.js +1 -0
- data/app/assets/javascripts/swagger_ui_engine_2/swagger-ui-bundle.js +3 -0
- data/app/assets/javascripts/swagger_ui_engine_2/swagger-ui-bundle.js.map +1 -0
- data/app/assets/javascripts/swagger_ui_engine_2/swagger-ui-es-bundle-core.js +2 -0
- data/app/assets/javascripts/swagger_ui_engine_2/swagger-ui-es-bundle-core.js.map +1 -0
- data/app/assets/javascripts/swagger_ui_engine_2/swagger-ui-es-bundle.js +3 -0
- data/app/assets/javascripts/swagger_ui_engine_2/swagger-ui-es-bundle.js.map +1 -0
- data/app/assets/javascripts/swagger_ui_engine_2/swagger-ui-standalone-preset.js +3 -0
- data/app/assets/javascripts/swagger_ui_engine_2/swagger-ui-standalone-preset.js.map +1 -0
- data/app/assets/javascripts/swagger_ui_engine_2/swagger-ui.js +2 -0
- data/app/assets/stylesheets/swagger_ui_engine_2/application.css +35 -0
- data/app/assets/stylesheets/swagger_ui_engine_2/swagger-ui.css +4 -0
- data/app/assets/stylesheets/swagger_ui_engine_2/swagger-ui.css.map +1 -0
- data/app/assets/stylesheets/swagger_ui_engine_2/swagger-ui.js +2 -0
- data/app/assets/stylesheets/swagger_ui_engine_2/swagger-ui.js.map +1 -0
- data/app/controllers/swagger_ui_engine2/application_controller.rb +20 -0
- data/app/controllers/swagger_ui_engine2/swagger_docs_controller.rb +25 -0
- data/app/helpers/swagger_ui_engine_2/application_helper.rb +4 -0
- data/app/helpers/swagger_ui_engine_2/auth_config_parser.rb +19 -0
- data/app/helpers/swagger_ui_engine_2/config_parser.rb +26 -0
- data/app/views/layouts/swagger_ui_engine2/swagger.html.erb +17 -0
- data/app/views/swagger_ui_engine2/swagger_docs/index.html.erb +36 -0
- data/config/routes.rb +3 -0
- data/lib/swagger_ui_engine_2/configuration.rb +24 -0
- data/lib/swagger_ui_engine_2/defaults.rb +10 -0
- data/lib/swagger_ui_engine_2/engine.rb +5 -0
- data/lib/swagger_ui_engine_2/version.rb +3 -0
- data/lib/swagger_ui_engine_2.rb +19 -0
- data/lib/tasks/swaggerui_tasks.rake +4 -0
- metadata +104 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module SwaggerUiEngine2
|
|
2
|
+
class ApplicationController < ActionController::Base
|
|
3
|
+
include SwaggerUiEngine2::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,25 @@
|
|
|
1
|
+
module SwaggerUiEngine2
|
|
2
|
+
class SwaggerDocsController < ApplicationController
|
|
3
|
+
include SwaggerUiEngine2::ConfigParser
|
|
4
|
+
|
|
5
|
+
layout 'layouts/swagger_ui_engine2/swagger'
|
|
6
|
+
|
|
7
|
+
before_action :set_configs
|
|
8
|
+
|
|
9
|
+
def index
|
|
10
|
+
@swagger_url = @swagger_url[params[:id].to_sym] unless single_doc_url?
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
def set_configs
|
|
16
|
+
SwaggerUiEngine2::DEFAULTS.keys.each do |key|
|
|
17
|
+
instance_variable_set("@#{key}", self.send("set_#{key}"))
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def single_doc_url?
|
|
22
|
+
@swagger_url.is_a?(String)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module SwaggerUiEngine2
|
|
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
|
+
SwaggerUiEngine2.configuration
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module SwaggerUiEngine2
|
|
2
|
+
module ConfigParser
|
|
3
|
+
SwaggerUiEngine2::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? ? SwaggerUiEngine2::DEFAULTS[:validator_url] : 'null'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def validator_enabled?
|
|
19
|
+
configuration.validator_enabled || false
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def configuration
|
|
23
|
+
SwaggerUiEngine2.configuration
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>Swagger</title>
|
|
5
|
+
<%= csrf_meta_tags %>
|
|
6
|
+
<%= csp_meta_tag %>
|
|
7
|
+
|
|
8
|
+
<%= stylesheet_link_tag "swagger_ui_engine_2/application", media: "all" %>
|
|
9
|
+
<%= javascript_include_tag "swagger_ui_engine_2/swagger-ui-bundle.js" %>
|
|
10
|
+
<%= javascript_include_tag "swagger_ui_engine_2/swagger-ui-standalone-preset.js" %>
|
|
11
|
+
|
|
12
|
+
<%= yield :head %>
|
|
13
|
+
</head>
|
|
14
|
+
<body>
|
|
15
|
+
<%= yield %>
|
|
16
|
+
</body>
|
|
17
|
+
</html>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<% content_for(:head) do %>
|
|
2
|
+
<script type="text/javascript">
|
|
3
|
+
window.onload = 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
|
+
// Begin Swagger UI call region
|
|
12
|
+
const ui = SwaggerUIBundle({
|
|
13
|
+
url: url,
|
|
14
|
+
dom_id: '#swagger-ui',
|
|
15
|
+
deepLinking: true,
|
|
16
|
+
docExpansion: "<%= @doc_expansion %>",
|
|
17
|
+
jsonEditor: "<%= @json_editor %>",
|
|
18
|
+
defaultModelRendering: "<%= @model_rendering %>",
|
|
19
|
+
showRequestHeaders: "<%= @request_headers %>",
|
|
20
|
+
presets: [
|
|
21
|
+
SwaggerUIBundle.presets.apis,
|
|
22
|
+
SwaggerUIStandalonePreset
|
|
23
|
+
],
|
|
24
|
+
plugins: [
|
|
25
|
+
SwaggerUIBundle.plugins.DownloadUrl
|
|
26
|
+
],
|
|
27
|
+
layout: "StandaloneLayout"
|
|
28
|
+
});
|
|
29
|
+
// End Swagger UI call region
|
|
30
|
+
|
|
31
|
+
window.ui = ui;
|
|
32
|
+
};
|
|
33
|
+
</script>
|
|
34
|
+
<% end %>
|
|
35
|
+
|
|
36
|
+
<div id="swagger-ui"></div>
|
data/config/routes.rb
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module SwaggerUiEngine2
|
|
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,10 @@
|
|
|
1
|
+
module SwaggerUiEngine2
|
|
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
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require "sprockets/railtie"
|
|
2
|
+
require "swagger_ui_engine_2/version"
|
|
3
|
+
require "swagger_ui_engine_2/engine"
|
|
4
|
+
require "swagger_ui_engine_2/configuration"
|
|
5
|
+
require "swagger_ui_engine_2/defaults"
|
|
6
|
+
|
|
7
|
+
module SwaggerUiEngine2
|
|
8
|
+
class << self
|
|
9
|
+
delegate(*Configuration::OPTIONS, to: :configuration)
|
|
10
|
+
|
|
11
|
+
def configuration
|
|
12
|
+
@configuration ||= Configuration.new
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def configure
|
|
16
|
+
yield configuration
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: swagger_ui_engine_2
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.2.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Israel
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2022-03-10 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.0.0
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 6.0.0
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: sprockets-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: Description of SwaggerUiEngine2.
|
|
42
|
+
email:
|
|
43
|
+
- israelb.aceves@gmail.com
|
|
44
|
+
executables: []
|
|
45
|
+
extensions: []
|
|
46
|
+
extra_rdoc_files: []
|
|
47
|
+
files:
|
|
48
|
+
- README.md
|
|
49
|
+
- Rakefile
|
|
50
|
+
- app/assets/config/swagger_ui_engine_2/manifest.js
|
|
51
|
+
- app/assets/images/swagger_ui_engine_2/favicon-16x16.png
|
|
52
|
+
- app/assets/images/swagger_ui_engine_2/favicon-32x32.png
|
|
53
|
+
- app/assets/javascripts/swagger_ui_engine_2/application.js
|
|
54
|
+
- app/assets/javascripts/swagger_ui_engine_2/swagger-ui-bundle.js
|
|
55
|
+
- app/assets/javascripts/swagger_ui_engine_2/swagger-ui-bundle.js.map
|
|
56
|
+
- app/assets/javascripts/swagger_ui_engine_2/swagger-ui-es-bundle-core.js
|
|
57
|
+
- app/assets/javascripts/swagger_ui_engine_2/swagger-ui-es-bundle-core.js.map
|
|
58
|
+
- app/assets/javascripts/swagger_ui_engine_2/swagger-ui-es-bundle.js
|
|
59
|
+
- app/assets/javascripts/swagger_ui_engine_2/swagger-ui-es-bundle.js.map
|
|
60
|
+
- app/assets/javascripts/swagger_ui_engine_2/swagger-ui-standalone-preset.js
|
|
61
|
+
- app/assets/javascripts/swagger_ui_engine_2/swagger-ui-standalone-preset.js.map
|
|
62
|
+
- app/assets/javascripts/swagger_ui_engine_2/swagger-ui.js
|
|
63
|
+
- app/assets/stylesheets/swagger_ui_engine_2/application.css
|
|
64
|
+
- app/assets/stylesheets/swagger_ui_engine_2/swagger-ui.css
|
|
65
|
+
- app/assets/stylesheets/swagger_ui_engine_2/swagger-ui.css.map
|
|
66
|
+
- app/assets/stylesheets/swagger_ui_engine_2/swagger-ui.js
|
|
67
|
+
- app/assets/stylesheets/swagger_ui_engine_2/swagger-ui.js.map
|
|
68
|
+
- app/controllers/swagger_ui_engine2/application_controller.rb
|
|
69
|
+
- app/controllers/swagger_ui_engine2/swagger_docs_controller.rb
|
|
70
|
+
- app/helpers/swagger_ui_engine_2/application_helper.rb
|
|
71
|
+
- app/helpers/swagger_ui_engine_2/auth_config_parser.rb
|
|
72
|
+
- app/helpers/swagger_ui_engine_2/config_parser.rb
|
|
73
|
+
- app/views/layouts/swagger_ui_engine2/swagger.html.erb
|
|
74
|
+
- app/views/swagger_ui_engine2/swagger_docs/index.html.erb
|
|
75
|
+
- config/routes.rb
|
|
76
|
+
- lib/swagger_ui_engine_2.rb
|
|
77
|
+
- lib/swagger_ui_engine_2/configuration.rb
|
|
78
|
+
- lib/swagger_ui_engine_2/defaults.rb
|
|
79
|
+
- lib/swagger_ui_engine_2/engine.rb
|
|
80
|
+
- lib/swagger_ui_engine_2/version.rb
|
|
81
|
+
- lib/tasks/swaggerui_tasks.rake
|
|
82
|
+
homepage:
|
|
83
|
+
licenses: []
|
|
84
|
+
metadata: {}
|
|
85
|
+
post_install_message:
|
|
86
|
+
rdoc_options: []
|
|
87
|
+
require_paths:
|
|
88
|
+
- lib
|
|
89
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
|
+
requirements:
|
|
91
|
+
- - ">="
|
|
92
|
+
- !ruby/object:Gem::Version
|
|
93
|
+
version: '0'
|
|
94
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
|
+
requirements:
|
|
96
|
+
- - ">="
|
|
97
|
+
- !ruby/object:Gem::Version
|
|
98
|
+
version: '0'
|
|
99
|
+
requirements: []
|
|
100
|
+
rubygems_version: 3.3.8
|
|
101
|
+
signing_key:
|
|
102
|
+
specification_version: 4
|
|
103
|
+
summary: Summary of SwaggerUiEngine2.
|
|
104
|
+
test_files: []
|