Skip to content

Commit d52e8df

Browse files
committed
Doc how to update
1 parent 09104bb commit d52e8df

File tree

3 files changed

+138
-0
lines changed

3 files changed

+138
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ test/dummy/log/*.log
77
swagger_ui_engine-*.gem
88
Gemfile.lock
99
test/dummy/log/test.log
10+
node_modules/

package.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "swagger_ui_engine",
3+
"private": true,
4+
"repository": "git@github.com:swipesense/swagger_ui_engine.git",
5+
"license": "",
6+
"dependencies": {
7+
"swagger-ui": "2.2.10"
8+
}
9+
}

update_assets.sh

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
#!/usr/bin/env bash
2+
3+
# Usage:
4+
# 1. npm install
5+
# 1. ./update_assets.sh
6+
# 1. review any changes manually, ignoring where where the engine adds configurations
7+
# - NOTE: the dist/index.html is split into
8+
# - assets/javascripts/application.js
9+
# - assets/stylesheets/application.js
10+
# - assets/stylesheets/print.js
11+
# - views/layouts/swagger.html.erb
12+
# - views/swagger_ui_engine/docs/show.html.erb
13+
# - views/swagger_ui_engine/docs/index.html.erb
14+
DIST_PATH="node_modules/swagger-ui/dist"
15+
ASSETS_PATH="app/assets"
16+
npm install
17+
command -v beautify || npm install -g beautify
18+
19+
copy_asset() {
20+
local cmd
21+
cmd="cp ${DIST_PATH}/$1 ${ASSETS_PATH}/$2"
22+
eval "$cmd"
23+
}
24+
beautify_css() {
25+
beautify -o "${ASSETS_PATH}/$1" -f css "${ASSETS_PATH}/$1"
26+
}
27+
add_image_tags() {
28+
ruby -e "
29+
filename = '$ASSETS_PATH/$1'
30+
contents = File.read(filename).gsub(/url\(\.\.\/images\/(?<image>[^)]+)\)/) do %(url(\"<=% image_path('swagger_ui_engine/#{Regexp.last_match[1]}') %>\")); end
31+
File.write(filename, contents)
32+
"
33+
34+
}
35+
strip_trailing_whitespace() {
36+
git ls-files app/assets/**/*{erb,css,html,js} | while read file ; do sed -i '' -e's/[[:space:]]*$//' "$file"; done
37+
}
38+
# node_modules/swagger-ui/dist/
39+
# ├── css
40+
# ├── fonts
41+
# ├── images
42+
# ├── lang
43+
# ├── lib
44+
# ├── index.html
45+
# ├── o2c.html
46+
# ├── swagger-ui.js
47+
# └── swagger-ui.min.js
48+
copy_asset /swagger-ui.js /javascripts/swagger_ui_engine/
49+
copy_asset /swagger-ui.min.js /javascripts/swagger_ui_engine/
50+
51+
cp node_modules/swagger-ui/dist/o2c.html app/views/swagger_ui_engine/docs/oauth2.html.erb
52+
cp node_modules/swagger-ui/dist/index.html app/views/swagger_ui_engine/docs/index.html.erb
53+
54+
# node_modules/swagger-ui/dist/lib/
55+
# ├── backbone-min.js
56+
# ├── es5-shim.js
57+
# ├── handlebars-4.0.5.js
58+
# ├── highlight.9.1.0.pack.js
59+
# ├── highlight.9.1.0.pack_extended.js
60+
# ├── jquery-1.8.0.min.js
61+
# ├── jquery.ba-bbq.min.js
62+
# ├── jquery.slideto.min.js
63+
# ├── jquery.wiggle.min.js
64+
# ├── js-yaml.min.js
65+
# ├── jsoneditor.min.js
66+
# ├── lodash.min.js
67+
# ├── marked.js
68+
# ├── object-assign-pollyfill.js
69+
# ├── sanitize-html.min.js
70+
# └── swagger-oauth.js
71+
copy_asset /lib/* /javascripts/swagger_ui_engine/lib/
72+
73+
# node_modules/swagger-ui/dist/css/
74+
# ├── print.css -> print.css.erb
75+
# ├── reset.css
76+
# ├── screen.css -> screen.css.erb
77+
# ├── style.css
78+
# └── typography.css -> typography.css.erb
79+
copy_asset /css/print.css /stylesheets/swagger_ui_engine/lib/print.css.erb
80+
beautify_css /stylesheets/swagger_ui_engine/lib/print.css.erb
81+
add_image_tags /stylesheets/swagger_ui_engine/lib/print.css.erb
82+
83+
copy_asset /css/screen.css /stylesheets/swagger_ui_engine/lib/screen.css.erb
84+
beautify_css /stylesheets/swagger_ui_engine/lib/screen.css.erb
85+
add_image_tags /stylesheets/swagger_ui_engine/lib/screen.css.erb
86+
87+
# copy_asset /css/typography.css /stylesheets/swagger_ui_engine/lib/typography.css.erb
88+
copy_asset /css/reset.css /stylesheets/swagger_ui_engine/lib/reset.css
89+
copy_asset /css/style.css /stylesheets/swagger_ui_engine/lib/style.css
90+
91+
# node_modules/swagger-ui/dist/fonts/
92+
# ├── DroidSans-Bold.ttf
93+
# └── DroidSans.ttf
94+
copy_asset /fonts/* /fonts/swagger_ui_engine/
95+
96+
# node_modules/swagger-ui/dist/images/
97+
# ├── collapse.gif
98+
# ├── expand.gif
99+
# ├── explorer_icons.png
100+
# ├── favicon-16x16.png
101+
# ├── favicon-32x32.png
102+
# ├── favicon.ico
103+
# ├── logo_small.png
104+
# ├── pet_store_api.png
105+
# ├── throbber.gif
106+
# └── wordnik_api.png
107+
copy_asset /images/* /images/swagger_ui_engine/
108+
109+
# node_modules/swagger-ui/dist/lang/
110+
# ├── ca.js
111+
# ├── el.js
112+
# ├── en.js
113+
# ├── es.js
114+
# ├── fr.js
115+
# ├── geo.js
116+
# ├── it.js
117+
# ├── ja.js
118+
# ├── ko-kr.js
119+
# ├── pl.js
120+
# ├── pt.js
121+
# ├── ru.js
122+
# ├── tr.js
123+
# ├── translator.js
124+
# └── zh-cn.js
125+
copy_asset /lang/* /javascripts/swagger_ui_engine/lang
126+
127+
# Strip trailing whitespace
128+
strip_trailing_whitespace

0 commit comments

Comments
 (0)