Created
April 22, 2014 16:07
-
-
Save ssut/11184975 to your computer and use it in GitHub Desktop.
puma on_worker_boot
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on_worker_boot do | |
request_thread_count = Puma.cli_config.options[:max_threads] | |
Sidekiq.configure_client do |cfg| | |
cfg.redis = ConnectionPool.new(:size => 10, :timeout => 3) { Redis.connect } | |
end | |
cmdline = `cat /proc/#{$$}/cmdline` | |
# compress assets | |
# reference: app.rb - L:97 | |
if Puma.cli_config.options[:environment] == 'production' and cmdline.include? 'worker 0' | |
require 'less' | |
require 'uglifier' | |
puts '[compress] starting compress assets ..' | |
compile_proc = -> (file) { | |
content = File.read(file) | |
if file.include? '.less' | |
less_dir = File.join(pub, 'static', 'css') | |
parser = Less::Parser.new(paths: [ less_dir ]) | |
parser.parse(content).to_css(compress: true).gsub(/\r|\n/, '') | |
elsif file.include? '.js' | |
Uglifier.compile(content) | |
else | |
content | |
end | |
} | |
less_dir = File.join(pub, 'static', 'css') | |
pipe_dir = File.join(pub, 'static', 'assets', 'pipe') | |
js_dir = File.join(pub, 'static', 'js') | |
less_files = %w(saucer.less bootstrap.css).map { |f| "#{less_dir}/#{f}" } | |
less_ja_files = %w(saucer.less saucer-ja.less bootstrap.css).map { |f| "#{less_dir}/#{f}" } | |
js_files = %w(jquery.min.js jquery.lazy.min.js jquery.powertip.min.js moment.min.js ubitinfo.js).map { |f| "#{js_dir}/#{f}" } | |
less_compiled = File.join(pipe_dir, 'stylesheet.css') | |
less_ja_compiled = File.join(pipe_dir, 'stylesheet-ja.css') | |
js_compiled = File.join(pipe_dir, 'javascript.js') | |
_less = '' | |
_less_ja = '' | |
_js = '' | |
less_files.each { |f| _less << compile_proc.call(f) } | |
less_ja_files.each { |f| _less_ja << compile_proc.call(f) } | |
js_files.each { |f| _js << compile_proc.call(f) } | |
File.open(less_compiled, 'w') { |f| f.write _less } | |
File.open(less_ja_compiled, 'w') { |f| f.write _less_ja } | |
File.open(js_compiled, 'w') { |f| f.write _js } | |
puts '[compress] done.' | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment