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