Class: Bundler::Source::Path::Installer

Inherits:
GemInstaller show all
Defined in:
lib/bundler/source.rb

Instance Method Summary collapse

Methods inherited from GemInstaller

#check_executable_overwrite

Constructor Details

#initialize(spec, options = {}) ⇒ Installer

Returns a new instance of Installer.



389
390
391
392
393
394
395
396
# File 'lib/bundler/source.rb', line 389

def initialize(spec, options = {})
  @spec              = spec
  @bin_dir           = Bundler.requires_sudo? ? "#{Bundler.tmp}/bin" : "#{Bundler.rubygems.gem_dir}/bin"
  @gem_dir           = Bundler.rubygems.path(spec.full_gem_path)
  @wrappers          = options[:wrappers] || true
  @env_shebang       = options[:env_shebang] || true
  @format_executable = options[:format_executable] || false
end

Instance Method Details

#generate_binObject



398
399
400
401
402
403
404
405
406
407
408
409
410
411
# File 'lib/bundler/source.rb', line 398

def generate_bin
  return if spec.executables.nil? || spec.executables.empty?

  if Bundler.requires_sudo?
    FileUtils.mkdir_p("#{Bundler.tmp}/bin") unless File.exist?("#{Bundler.tmp}/bin")
  end
  super
  if Bundler.requires_sudo?
    Bundler.mkdir_p "#{Bundler.rubygems.gem_dir}/bin"
    spec.executables.each do |exe|
      Bundler.sudo "cp -R #{Bundler.tmp}/bin/#{exe} #{Bundler.rubygems.gem_dir}/bin/"
    end
  end
end