lib/generators/source/puma.rb.erb in h2ocube_rails_puma-0.0.7 vs lib/generators/source/puma.rb.erb in h2ocube_rails_puma-0.1.0
- old
+ new
@@ -1,11 +1,66 @@
-application_path = File.expand_path('../../', __FILE__)
+#!/usr/bin/env puma
-stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log"
+directory '<%= current_path %>'
+rackup "<%=fetch(:puma_rackup)%>"
+environment '<%= fetch(:puma_env) %>'
+<% if fetch(:puma_tag) %>
+ tag '<%= fetch(:puma_tag)%>'
+<% end %>
+pidfile "<%=fetch(:puma_pid)%>"
+state_path "<%=fetch(:puma_state)%>"
+stdout_redirect '<%=fetch(:puma_access_log)%>', '<%=fetch(:puma_error_log)%>', true
+
+threads <%=fetch(:puma_threads).join(',')%>
+
+<%= puma_plugins %>
+
+<%= puma_bind %>
+<% if fetch(:puma_control_app) %>
+activate_control_app "<%= fetch(:puma_default_control_app) %>"
+<% end %>
+workers <%= puma_workers %>
+<% if fetch(:puma_worker_timeout) %>
+worker_timeout <%= fetch(:puma_worker_timeout).to_i %>
+<% end %>
+
+<% if puma_daemonize? %>
+daemonize
+<% end %>
+
+<% if puma_preload_app? %>
preload_app!
+<% else %>
+prune_bundler
+<% end %>
+on_restart do
+ puts 'Refreshing Gemfile'
+ ENV["BUNDLE_GEMFILE"] = "<%= fetch(:bundle_gemfile, "#{current_path}/Gemfile") %>"
+end
+
+<% if puma_preload_app? and fetch(:puma_init_active_record) %>
+before_fork do
+ ActiveRecord::Base.connection_pool.disconnect!
+
+ if RUBY_PLATFORM.match?(/linux/)
+ require 'puma_worker_killer'
+
+ PumaWorkerKiller.config do |config|
+ config.ram = (`free`.lines.to_a[1].split[1].to_i / 1024).to_i
+ config.frequency = 30
+ config.percent_usage = 0.5
+ config.rolling_restart_frequency = 8 * 3600
+ config.reaper_status_logs = true
+ end
+
+ PumaWorkerKiller.start
+ end
+end
+
on_worker_boot do
ActiveSupport.on_load(:active_record) do
ActiveRecord::Base.establish_connection
end
end
+<% end %>