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

Inherits:
RubyGemsGemInstaller show all
Defined in:
lib/bundler/source/path/installer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from RubyGemsGemInstaller

at, #build_extensions, #check_executable_overwrite, #pre_install_checks

Constructor Details

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

Returns a new instance of Installer.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/bundler/source/path/installer.rb', line 9

def initialize(spec, options = {})
  @options            = options
  @spec               = spec
  @gem_dir            = Bundler.rubygems.path(spec.full_gem_path)
  @wrappers           = true
  @env_shebang        = true
  @format_executable  = options[:format_executable] || false
  @build_args         = options[:build_args] || Bundler.rubygems.build_args
  @gem_bin_dir        = "#{Bundler.rubygems.gem_dir}/bin"
  @disable_extensions = options[:disable_extensions]

  if Bundler.requires_sudo?
    @tmp_dir = Bundler.tmp(spec.full_name).to_s
    @bin_dir = "#{@tmp_dir}/bin"
  else
    @bin_dir = @gem_bin_dir
  end
end

Instance Attribute Details

#specObject (readonly)

Returns the value of attribute spec.



7
8
9
# File 'lib/bundler/source/path/installer.rb', line 7

def spec
  @spec
end

Instance Method Details

#post_installObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/bundler/source/path/installer.rb', line 28

def post_install
  SharedHelpers.chdir(@gem_dir) do
    run_hooks(:pre_install)

    unless @disable_extensions
      build_extensions
      run_hooks(:post_build)
    end

    generate_bin unless spec.executables.nil? || spec.executables.empty?

    run_hooks(:post_install)
  end
ensure
  Bundler.rm_rf(@tmp_dir) if Bundler.requires_sudo?
end