class Bundler::Source::Path

def generate_bin(spec)

def generate_bin(spec)
  gem_dir  = spec.full_gem_path
  gem_file = Dir.chdir(gem_dir){ Gem::Builder.new(spec).build }
  installer = Gem::Installer.new File.join(gem_dir, gem_file),
    :bin_dir           => "#{Gem.dir}/bin",
    :wrappers          => true,
    :env_shebang       => false,
    :format_executable => false
  installer.instance_eval { @gem_dir = gem_dir }
  installer.build_extensions
  installer.generate_bin
rescue Gem::InvalidSpecificationException => e
  Bundler.ui.warn "\n#{spec.name} at #{spec.full_gem_path} did not have a valid gemspec.\n" \
                  "This prevents bundler from installing bins or native extensions, but " \
                  "that may not affect its functionality."
  if !spec.extensions.empty? && !spec.email.empty?
    Bundler.ui.warn "If you need to use this package without installing it from a gem " \
                    "repository, please contact #{spec.email} and ask them " \
                    "to modify their .gemspec so it can work with `gem build`."
  end
  Bundler.ui.warn "The validation message from Rubygems was:\n  #{e.message}"
ensure
  Dir.chdir(gem_dir){ FileUtils.rm_rf(gem_file) if gem_file && File.exist?(gem_file) }
end