Sha256: 1a73ae276c5d32b926c19b87fb1a21ddcbfaca8f0a0e573d304f3f5c4ab0bf25

Contents?: true

Size: 1.54 KB

Versions: 170

Compression:

Stored size: 1.54 KB

Contents

# frozen_string_literal: true

require_relative "../../rubygems_gem_installer"

module Bundler
  class Source
    class Path
      class Installer < Bundler::RubyGemsGemInstaller
        attr_reader :spec

        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

        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

        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
      end
    end
  end
end

Version data entries

170 entries across 170 versions & 4 rubygems

Version Path
direct7-0.0.18 vendor/bundle/ruby/2.7.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
direct7-0.0.17 vendor/bundle/ruby/2.7.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
rubygems-update-3.5.23 bundler/lib/bundler/source/path/installer.rb
bundler-2.5.23 lib/bundler/source/path/installer.rb
direct7-0.0.16 vendor/bundle/ruby/2.7.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
rubygems-update-3.5.22 bundler/lib/bundler/source/path/installer.rb
bundler-2.5.22 lib/bundler/source/path/installer.rb
rubygems-update-3.5.21 bundler/lib/bundler/source/path/installer.rb
bundler-2.5.21 lib/bundler/source/path/installer.rb
rubygems-update-3.5.20 bundler/lib/bundler/source/path/installer.rb
bundler-2.5.20 lib/bundler/source/path/installer.rb
rubygems-update-3.5.19 bundler/lib/bundler/source/path/installer.rb
bundler-2.5.19 lib/bundler/source/path/installer.rb
rubygems-update-3.5.18 bundler/lib/bundler/source/path/installer.rb
bundler-2.5.18 lib/bundler/source/path/installer.rb
rubygems-update-3.5.17 bundler/lib/bundler/source/path/installer.rb
bundler-2.5.17 lib/bundler/source/path/installer.rb
rubygems-update-3.5.16 bundler/lib/bundler/source/path/installer.rb
bundler-2.5.16 lib/bundler/source/path/installer.rb
rubygems-update-3.5.15 bundler/lib/bundler/source/path/installer.rb