PHP 8.2.31
Preview: install_update_options.rb Size: 6.35 KB
//proc/thread-self/root/opt/alt/ruby32/share/rubygems/rubygems/install_update_options.rb

# frozen_string_literal: true

#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require_relative "../rubygems"
require_relative "security_option"

##
# Mixin methods for install and update options for Gem::Commands

module Gem::InstallUpdateOptions
  include Gem::SecurityOption

  ##
  # Add the install/update options to the option parser.

  def add_install_update_options
    add_option(:"Install/Update", "-i", "--install-dir DIR",
               "Gem repository directory to get installed",
               "gems") do |value, options|
      options[:install_dir] = File.expand_path(value)
    end

    add_option(:"Install/Update", "-n", "--bindir DIR",
               "Directory where executables will be",
               "placed when the gem is installed") do |value, options|
      options[:bin_dir] = File.expand_path(value)
    end

    add_option(:"Install/Update", "--document [TYPES]", Array,
               "Generate documentation for installed gems",
               "List the documentation types you wish to",
               "generate.  For example: rdoc,ri") do |value, options|
      options[:document] = case value
      when nil   then %w[ri]
      when false then []
      else            value
      end
    end

    add_option(:"Install/Update", "--build-root DIR",
               "Temporary installation root. Useful for building",
               "packages. Do not use this when installing remote gems.") do |value, options|
      options[:build_root] = File.expand_path(value)
    end

    add_option(:"Install/Update", "--vendor",
               "Install gem into the vendor directory.",
               "Only for use by gem repackagers.") do |value, options|
      unless Gem.vendor_dir
        raise Gem::OptionParser::InvalidOption.new "your platform is not supported"
      end

      options[:vendor] = true
      options[:install_dir] = Gem.vendor_dir
    end

    add_option(:"Install/Update", "-N", "--no-document",
               "Disable documentation generation") do |value, options|
      options[:document] = []
    end

    add_option(:"Install/Update", "-E", "--[no-]env-shebang",
               "Rewrite the shebang line on installed",
               "scripts to use /usr/bin/env") do |value, options|
      options[:env_shebang] = value
    end

    add_option(:"Install/Update", "-f", "--[no-]force",
               "Force gem to install, bypassing dependency",
               "checks") do |value, options|
      options[:force] = value
    end

    add_option(:"Install/Update", "-w", "--[no-]wrappers",
               "Use bin wrappers for executables",
               "Not available on dosish platforms") do |value, options|
      options[:wrappers] = value
    end

    add_security_option

    add_option(:"Install/Update", "--ignore-dependencies",
               "Do not install any required dependent gems") do |value, options|
      options[:ignore_dependencies] = value
    end

    add_option(:"Install/Update", "--[no-]format-executable",
               "Make installed executable names match Ruby.",
               "If Ruby is ruby18, foo_exec will be",
               "foo_exec18") do |value, options|
      options[:format_executable] = value
    end

    add_option(:"Install/Update", "--[no-]user-install",
               "Install in user's home directory instead",
               "of GEM_HOME.") do |value, options|
      options[:user_install] = value
    end

    add_option(:"Install/Update", "--development",
                "Install additional development",
                "dependencies") do |value, options|
      options[:development] = true
      options[:dev_shallow] = true
    end

    add_option(:"Install/Update", "--development-all",
                "Install development dependencies for all",
                "gems (including dev deps themselves)") do |value, options|
      options[:development] = true
      options[:dev_shallow] = false
    end

    add_option(:"Install/Update", "--conservative",
                "Don't attempt to upgrade gems already",
                "meeting version requirement") do |value, options|
      options[:conservative] = true
      options[:minimal_deps] = true
    end

    add_option(:"Install/Update", "--[no-]minimal-deps",
                "Don't upgrade any dependencies that already",
                "meet version requirements") do |value, options|
      options[:minimal_deps] = value
    end

    add_option(:"Install/Update", "--[no-]post-install-message",
                "Print post install message") do |value, options|
      options[:post_install_message] = value
    end

    add_option(:"Install/Update", "-g", "--file [FILE]",
               "Read from a gem dependencies API file and",
               "install the listed gems") do |v,o|
      v = Gem::GEM_DEP_FILES.find do |file|
        File.exist? file
      end unless v

      unless v
        message = v ? v : "(tried #{Gem::GEM_DEP_FILES.join ', '})"

        raise Gem::OptionParser::InvalidArgument,
                "cannot find gem dependencies file #{message}"
      end

      options[:gemdeps] = v
    end

    add_option(:"Install/Update", "--without GROUPS", Array,
               "Omit the named groups (comma separated)",
               "when installing from a gem dependencies",
               "file") do |v,o|
      options[:without_groups].concat v.map {|without| without.intern }
    end

    add_option(:"Install/Update", "--default",
               "Add the gem's full specification to",
               "specifications/default and extract only its bin") do |v,o|
      options[:install_as_default] = v
    end

    add_option(:"Install/Update", "--explain",
               "Rather than install the gems, indicate which would",
               "be installed") do |v,o|
      options[:explain] = v
    end

    add_option(:"Install/Update", "--[no-]lock",
               "Create a lock file (when used with -g/--file)") do |v,o|
      options[:lock] = v
    end

    add_option(:"Install/Update", "--[no-]suggestions",
               "Suggest alternates when gems are not found") do |v,o|
      options[:suggest_alternate] = v
    end
  end

  ##
  # Default options for the gem install and update commands.

  def install_update_options
    {
      :document => %w[ri],
    }
  end

  ##
  # Default description for the gem install and update commands.

  def install_update_defaults_str
    "--document=ri"
  end

end

Directory Contents

Dirs: 15 × Files: 64

Name Size Perms Modified Actions
commands DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
core_ext DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
defaults DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
ext DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
optparse DIR
- drwxr-xr-x 2026-04-07 14:12:46
Edit Download
package DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
request DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
resolver DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
security DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
source DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
ssl_certs DIR
- drwxr-xr-x 2026-04-07 14:12:47
Edit Download
tsort DIR
- drwxr-xr-x 2026-04-07 14:12:46
Edit Download
util DIR
- drwxr-xr-x 2026-04-30 07:09:29
Edit Download
3.01 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
7.65 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
1.96 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
16.08 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
5.59 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
1.00 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
14.03 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
6.96 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
8.65 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
10.02 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
5.54 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
4.89 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
3.13 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
4.53 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
7.34 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
498 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
10.54 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
1.80 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
10.91 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
27.23 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
773 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
349 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
323 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
6.35 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
3.56 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
1.38 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
2.39 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
125 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
72 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
17.70 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
3.79 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
1.79 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
7.48 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
795 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
8.50 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
232 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
9.20 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
8.60 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
11.31 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
6.89 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
9.64 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
5.92 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
1.54 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
21.95 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
1.06 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
66 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
5.58 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
2.41 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
70.45 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
13.79 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
6.36 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
4.46 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
2.07 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
66 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
10.20 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
411 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
2.26 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
2.33 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
781 B lrw-r--r-- 2026-04-07 14:12:59
Edit Download
13.04 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
2.41 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
3.66 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
12.57 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download
2.21 KB lrw-r--r-- 2026-04-07 14:12:59
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).