Sha256: 1a73ae276c5d32b926c19b87fb1a21ddcbfaca8f0a0e573d304f3f5c4ab0bf25

Contents?: true

Size: 1.54 KB

Versions: 180

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

180 entries across 180 versions & 6 rubygems

Version Path
harbr-0.2.2 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.2.1 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.2.0 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.99 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.98 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.97 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.96 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.95 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.94 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.93 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.91 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.90 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.89 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.88 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.87 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.86 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.85 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.84 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.83 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb
harbr-0.1.82 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/source/path/installer.rb