class Bundler::Source::Path::Installer
Attributes
spec[R]
Public Class Methods
new(spec, options = {})
click to toggle source
# File bundler/source/path/installer.rb, line 11 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] @bin_dir = @gem_bin_dir end
Public Instance Methods
post_install()
click to toggle source
# File bundler/source/path/installer.rb, line 24 def post_install run_hooks(:pre_install) unless @disable_extensions build_extensions run_hooks(:post_build) end generate_bin unless spec.executables.empty? run_hooks(:post_install) end
Private Instance Methods
run_hooks(type)
click to toggle source
# File bundler/source/path/installer.rb, line 39 def run_hooks(type) hooks_meth = "#{type}_hooks" return unless Gem.respond_to?(hooks_meth) Gem.send(hooks_meth).each do |hook| result = hook.call(self) next unless result == false location = " at #{$1}" if hook.inspect =~ /@(.*:\d+)/ message = "#{type} hook#{location} failed for #{spec.full_name}" raise InstallHookError, message end end