Module: Gem::SecurityOption

Included in:
Commands::UnpackCommand, InstallUpdateOptions
Defined in:
lib/rubygems/security_option.rb

Overview

Mixin methods for security option for Gem::Commands

Instance Method Summary collapse

Instance Method Details

#add_security_optionObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/rubygems/security_option.rb', line 22

def add_security_option
  Gem::OptionParser.accept Gem::Security::Policy do |value|
    require_relative "security"

    raise Gem::OptionParser::InvalidArgument, "OpenSSL not installed" unless
      defined?(Gem::Security::HighSecurity)

    policy = Gem::Security::Policies[value]
    unless policy
      valid = Gem::Security::Policies.keys.sort
      raise Gem::OptionParser::InvalidArgument, "#{value} (#{valid.join ", "} are valid)"
    end
    policy
  end

  add_option(:"Install/Update", "-P", "--trust-policy POLICY",
             Gem::Security::Policy,
             "Specify gem trust policy") do |value, options|
    options[:security_policy] = value
  end
end