Module: Gem::InstallUpdateOptions

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

Instance Method Details

#add_install_update_optionsObject

Add the install/update options to the option parser.



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
# File 'lib/rubygems/install_update_options.rb', line 24

def add_install_update_options
  # TODO: use @parser.accept
  OptionParser.accept Gem::Security::Policy do |value|
    require 'rubygems/security'

    value = Gem::Security::Policies[value]
    valid = Gem::Security::Policies.keys.sort
    message = "#{value} (#{valid.join ', '} are valid)"
    raise OptionParser::InvalidArgument, message if value.nil?
    value
  end

  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 binary files are',
             'located') do |value, options|
    options[:bin_dir] = File.expand_path(value)
  end

  add_option(:"Install/Update",       '--[no-]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", '-N', '--no-document',
             'Disable documentation generation') do |value, options|
    options[:document] = []
  end

  add_option(:Deprecated, '--[no-]rdoc',
             'Generate RDoc for installed gems',
             'Use --document instead') do |value, options|
    if value then
      options[:document] << 'rdoc'
    else
      options[:document].delete 'rdoc'
    end

    options[:document].uniq!
  end

  add_option(:Deprecated, '--[no-]ri',
             'Generate ri data for installed gems.',
             'Use --document instead') do |value, options|
    if value then
      options[:document] << 'ri'
    else
      options[:document].delete 'ri'
    end

    options[:document].uniq!
  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_option(:"Install/Update", '-P', '--trust-policy POLICY',
             Gem::Security::Policy,
             'Specify gem trust policy') do |value, options|
    options[:security_policy] = value
  end

  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", "--minimal-deps",
              "Don't upgrade any dependencies that already",
              "meet version requirements") do |value, options|
    options[:minimal_deps] = true
  end
end

#install_update_defaults_strObject

Default options for the gem install command.



161
162
163
# File 'lib/rubygems/install_update_options.rb', line 161

def install_update_defaults_str
  '--document=rdoc,ri --wrappers'
end