50 lines
1.2 KiB
Ruby
50 lines
1.2 KiB
Ruby
#!/usr/bin/env ruby
|
|
start_time = Time.now
|
|
require 'active_support/all'
|
|
require 'uglifier'
|
|
require 'fileutils'
|
|
|
|
def replace_files(files, &block)
|
|
Array.wrap(files).each do |file|
|
|
file_path = File.join('public/assets', file)
|
|
contents = File.read(file_path)
|
|
block.call(contents)
|
|
File.open(file_path, 'w+'){|f| f.puts contents}
|
|
end
|
|
end
|
|
|
|
def gsub_file(file, find, replace)
|
|
replace_files file do |contents|
|
|
contents.gsub! find, replace
|
|
end
|
|
end
|
|
|
|
def compress_js(*files)
|
|
replace_files files do |contents|
|
|
contents.replace Uglifier.compile(contents, screw_ie8: true)
|
|
end
|
|
end
|
|
|
|
def gsub_all_scripts(find, replace)
|
|
extensions = %w[js]
|
|
Dir.glob(File.join('public/assets/**', "*.{#{extensions.join(',')}}")).each do |asset_path|
|
|
end
|
|
end
|
|
|
|
def remove(*files)
|
|
files = files.first if files.first.is_a? Array
|
|
files.each do |file|
|
|
FileUtils.rm_rf(File.join('public/assets', file))
|
|
end
|
|
end
|
|
|
|
remove 'user/app/application.js' # embedded in flat/application
|
|
|
|
gsub_file 'user/foundation/application.css', /url\(("?)\/assets/, 'url(\1../..'
|
|
gsub_all_scripts 'src="/assets', 'src="./assets'
|
|
|
|
compress_js 'user/flat/application.js'
|
|
|
|
end_time = Time.now
|
|
puts "Converted assets for mobile in #{(end_time - start_time).round} seconds"
|