Module: Gem::InstallUpdateOptions

Includes:
SecurityOption
Included in:
Commands::InstallCommand, Commands::UpdateCommand
Defined in:
lib/rubygems/install_update_options.rb

Overview

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

Instance Method Summary collapse

Methods included from SecurityOption

#add_security_option

Instance Method Details

#add_install_update_optionsObject

Add the install/update options to the option parser.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
# 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

  add_option(:"Install/Update", "--target-rbconfig [FILE]",
              "rbconfig.rb for the deployment target platform") do |v, _o|
    Gem.set_target_rbconfig(v)
  end
end

#install_update_defaults_strObject

Default description for the gem install and update commands.



201
202
203
# File 'lib/rubygems/install_update_options.rb', line 201

def install_update_defaults_str
  "--document=ri"
end

#install_update_optionsObject

Default options for the gem install and update commands.



192
193
194
195
196
# File 'lib/rubygems/install_update_options.rb', line 192

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