|
1 |
| -require "bundler/gem_tasks" |
| 1 | +require 'bundler/gem_tasks' |
2 | 2 | require 'open-uri'
|
3 |
| -require "json" |
| 3 | +require 'json' |
4 | 4 |
|
5 | 5 | def download_release_file
|
6 | 6 | url = 'https://api.github.com/repos/summernote/summernote/releases/latest'
|
7 |
| - zip_url = JSON.parse(open(url).read)['assets'].first['browser_download_url'] |
| 7 | + asset = JSON.parse(open(url).read)['assets'].first |
8 | 8 |
|
9 |
| - FileUtils.rm_rf("tmp") |
10 |
| - FileUtils.mkdir_p("tmp") |
11 |
| - File.open("tmp/summernote.zip", "wb") do |saved_file| |
12 |
| - open(zip_url, "rb") do |read_file| |
13 |
| - saved_file.write(read_file.read) |
| 9 | + if asset.nil? |
| 10 | + puts 'No asset found on GitHub.' |
| 11 | + else |
| 12 | + zip_url = asset['browser_download_url'] |
| 13 | + FileUtils.rm_rf('tmp') |
| 14 | + FileUtils.mkdir_p('tmp') |
| 15 | + File.open("tmp/summernote.zip", "wb") do |saved_file| |
| 16 | + open(zip_url, "rb") do |read_file| |
| 17 | + saved_file.write(read_file.read) |
| 18 | + end |
14 | 19 | end
|
15 | 20 | end
|
16 | 21 |
|
17 |
| - `unzip -d tmp tmp/summernote.zip` |
| 22 | + puts 'No zip to process. Exiting...' and exit unless File.exists? 'tmp/summernote.zip' |
| 23 | + |
| 24 | + puts 'Unzipping "tmp/summernote.zip"...' |
| 25 | + FileUtils.rm_rf('tmp/dist') |
| 26 | + `unzip -d tmp/dist tmp/summernote.zip` |
18 | 27 | end
|
19 | 28 |
|
20 | 29 | def clean_assets
|
| 30 | + puts 'Cleaning old JS and CSS files...' |
| 31 | + |
21 | 32 | `rm -rf vendor/assets/stylesheets`
|
22 | 33 | `rm -rf vendor/assets/fonts`
|
23 | 34 | `rm -rf vendor/assets/javascripts/lang`
|
24 | 35 | `rm -rf vendor/assets/javascripts/plugin`
|
25 | 36 |
|
26 |
| - FileUtils.mkdir_p("vendor/assets/stylesheets") |
27 |
| - FileUtils.mkdir_p("vendor/assets/fonts") |
28 |
| - FileUtils.mkdir_p("vendor/assets/javascripts/summernote/lang") |
29 |
| - FileUtils.mkdir_p("vendor/assets/javascripts/summernote/plugin") |
| 37 | + FileUtils.mkdir_p('vendor/assets/stylesheets') |
| 38 | + FileUtils.mkdir_p('vendor/assets/fonts') |
| 39 | + FileUtils.mkdir_p('vendor/assets/javascripts/summernote/lang') |
| 40 | + FileUtils.mkdir_p('vendor/assets/javascripts/summernote/plugin') |
30 | 41 | end
|
31 | 42 |
|
32 |
| -def clean_fonts |
| 43 | +def fix_fonts |
| 44 | + puts 'Fixing font URLs in CSS files...' |
| 45 | + |
33 | 46 | css_paths = [
|
34 |
| - "vendor/assets/stylesheets/summernote.css", |
35 |
| - "vendor/assets/stylesheets/summernote-bs4.css", |
36 |
| - "vendor/assets/stylesheets/summernote-lite.css" |
| 47 | + 'vendor/assets/stylesheets/summernote.css', |
| 48 | + 'vendor/assets/stylesheets/summernote.min.css', |
| 49 | + 'vendor/assets/stylesheets/summernote-bs4.css', |
| 50 | + 'vendor/assets/stylesheets/summernote-bs4.min.css', |
| 51 | + 'vendor/assets/stylesheets/summernote-lite.css', |
| 52 | + 'vendor/assets/stylesheets/summernote-lite.min.css' |
37 | 53 | ]
|
38 | 54 |
|
39 | 55 | css_paths.each do |css_path|
|
40 | 56 | css_file = File.read(css_path)
|
41 |
| - css_file = css_file.gsub(/url\(\"\.\/font\/summernote.([a-z]+)\?[0-9a-f]+(#iefix)*\"\)/, 'url(asset-path("summernote.\1\2"))') |
42 |
| - css_file = css_file.gsub(/#iefix/, '?\0') |
| 57 | + css_file = css_file.gsub(/url\(font\/(summernote.[a-z0-9#?]+)\)/, 'url(asset-path("\1"))') |
43 | 58 | File.open(css_path, "w") {|old_css_file| old_css_file.print css_file}
|
44 | 59 | end
|
45 | 60 | end
|
46 | 61 |
|
47 | 62 | def copy_assets
|
48 | 63 | clean_assets
|
49 | 64 |
|
| 65 | + puts 'Copying new JS and CSS files...' |
50 | 66 | `cp tmp/dist/summernote.js vendor/assets/javascripts/summernote/summernote.js`
|
51 | 67 | `cp tmp/dist/summernote.min.js vendor/assets/javascripts/summernote/summernote.min.js`
|
| 68 | + `cp tmp/dist/summernote.min.js.map vendor/assets/javascripts/summernote/summernote.min.js.map` |
52 | 69 | `cp tmp/dist/summernote-bs4.js vendor/assets/javascripts/summernote/summernote-bs4.js`
|
53 | 70 | `cp tmp/dist/summernote-bs4.min.js vendor/assets/javascripts/summernote/summernote-bs4.min.js`
|
| 71 | + `cp tmp/dist/summernote-bs4.min.js.map vendor/assets/javascripts/summernote/summernote-bs4.min.js.map` |
54 | 72 | `cp tmp/dist/summernote-lite.js vendor/assets/javascripts/summernote/summernote-lite.js`
|
55 | 73 | `cp tmp/dist/summernote-lite.min.js vendor/assets/javascripts/summernote/summernote-lite.min.js`
|
| 74 | + `cp tmp/dist/summernote-lite.min.js.map vendor/assets/javascripts/summernote/summernote-lite.min.js.map` |
56 | 75 | `cp tmp/dist/summernote.css vendor/assets/stylesheets/summernote.css`
|
| 76 | + `cp tmp/dist/summernote.min.css vendor/assets/stylesheets/summernote.min.css` |
57 | 77 | `cp tmp/dist/summernote-bs4.css vendor/assets/stylesheets/summernote-bs4.css`
|
| 78 | + `cp tmp/dist/summernote-bs4.min.css vendor/assets/stylesheets/summernote-bs4.min.css` |
58 | 79 | `cp tmp/dist/summernote-lite.css vendor/assets/stylesheets/summernote-lite.css`
|
| 80 | + `cp tmp/dist/summernote-lite.min.css vendor/assets/stylesheets/summernote-lite.min.css` |
59 | 81 | `cp -R tmp/dist/plugin/* vendor/assets/javascripts/summernote/plugin`
|
60 | 82 | `cp -R tmp/dist/lang/* vendor/assets/javascripts/summernote/lang`
|
61 | 83 | `cp -R tmp/dist/font/* vendor/assets/fonts`
|
62 |
| - |
63 |
| - clean_fonts |
| 84 | + |
| 85 | + fix_fonts |
64 | 86 | end
|
65 | 87 |
|
66 | 88 | desc "Update assets"
|
67 | 89 | task 'update' do
|
68 | 90 | download_release_file
|
69 | 91 | copy_assets
|
| 92 | + |
| 93 | + puts 'Finished!' |
70 | 94 | end
|
0 commit comments