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

Inherits:
Gem::Installer
  • Object
show all
Defined in:
lib/bundler/source.rb

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of Installer.



373
374
375
376
377
378
379
380
# File 'lib/bundler/source.rb', line 373

def initialize(spec, options = {})
  @spec              = spec
  @bin_dir           = Bundler.requires_sudo? ? "#{Bundler.tmp}/bin" : "#{Gem.dir}/bin"
  @gem_dir           = 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



382
383
384
385
386
387
388
389
390
391
392
393
394
395
# File 'lib/bundler/source.rb', line 382

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 "#{Gem.dir}/bin"
    spec.executables.each do |exe|
      Bundler.sudo "cp -R #{Bundler.tmp}/bin/#{exe} #{Gem.dir}/bin/"
    end
  end
end