# module Gem::InstallUpdateOptions

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

### Public Instance Methods

add_install_update_options() click to toggle source

Add the install/update options to the option parser.

    # File lib/rubygems/install_update_options.rb, line 21
    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
          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(&: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

install_update_defaults_str() click to toggle source

Default description for the gem install and update commands.

    # File lib/rubygems/install_update_options.rb, line 196
    def install_update_defaults_str
      "--document=ri"
    end

install_update_options() click to toggle source

Default options for the gem install and update commands.

    # File lib/rubygems/install_update_options.rb, line 187
    def install_update_options
      {
        document: %w[ri],
      }
    end