summaryrefslogtreecommitdiff
path: root/lib/rubygems/install_update_options.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/install_update_options.rb')
-rw-r--r--lib/rubygems/install_update_options.rb14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/rubygems/install_update_options.rb b/lib/rubygems/install_update_options.rb
index f3ec1aa12a..5073be0c21 100644
--- a/lib/rubygems/install_update_options.rb
+++ b/lib/rubygems/install_update_options.rb
@@ -11,7 +11,13 @@
#++
require 'rubygems'
-require 'rubygems/security'
+
+# forward-declare
+
+module Gem::Security # :nodoc:
+ class Policy # :nodoc:
+ end
+end
##
# Mixin methods for install and update options for Gem::Commands
@@ -23,8 +29,12 @@ module Gem::InstallUpdateOptions
def add_install_update_options
OptionParser.accept Gem::Security::Policy do |value|
+ require 'rubygems/security'
+
value = Gem::Security::Policies[value]
- raise OptionParser::InvalidArgument, value if value.nil?
+ valid = Gem::Security::Policies.keys.sort
+ message = "#{value} (#{valid.join ', '} are valid)"
+ raise OptionParser::InvalidArgument, message if value.nil?
value
end