class Puma::Launcher::BundlePruner
def prune
def prune return if ENV['PUMA_BUNDLER_PRUNED'] return unless defined?(Bundler) require_rubygems_min_version! unless puma_wild_path log "! Unable to prune Bundler environment, continuing" return end dirs = paths_to_require_after_prune log '* Pruning Bundler environment' home = ENV['GEM_HOME'] bundle_gemfile = Bundler.original_env['BUNDLE_GEMFILE'] bundle_app_config = Bundler.original_env['BUNDLE_APP_CONFIG'] with_unbundled_env do ENV['GEM_HOME'] = home ENV['BUNDLE_GEMFILE'] = bundle_gemfile ENV['PUMA_BUNDLER_PRUNED'] = '1' ENV["BUNDLE_APP_CONFIG"] = bundle_app_config args = [Gem.ruby, puma_wild_path, '-I', dirs.join(':')] + @original_argv # Ruby 2.0+ defaults to true which breaks socket activation args += [{:close_others => false}] Kernel.exec(*args) end end