class Bundler::Installer
def install_gem_from_spec(spec, standalone = false)
def install_gem_from_spec(spec, standalone = false) # Download the gem to get the spec, because some specs that are returned # by rubygems.org are broken and wrong. Bundler::Fetcher.fetch(spec) if spec.source.is_a?(Bundler::Source::Rubygems) # Fetch the build settings, if there are any settings = Bundler.settings["build.#{spec.name}"] Bundler.rubygems.with_build_args [settings] do spec.source.install(spec) Bundler.ui.debug "from #{spec.loaded_from} " end # newline comes after installing, some gems say "with native extensions" Bundler.ui.info "" if Bundler.settings[:bin] standalone ? generate_standalone_bundler_executable_stubs(spec) : generate_bundler_executable_stubs(spec) end FileUtils.rm_rf(Bundler.tmp) rescue Exception => e # install hook failed raise e if e.is_a?(Bundler::InstallHookError) # other failure, likely a native extension build failure Bundler.ui.info "" Bundler.ui.warn "#{e.class}: #{e.message}" msg = "An error occurred while installing #{spec.name} (#{spec.version})," msg << " and Bundler cannot continue.\nMake sure that `gem install" msg << " #{spec.name} -v '#{spec.version}'` succeeds before bundling." Bundler.ui.debug e.backtrace.join("\n") raise Bundler::InstallError, msg end