summaryrefslogtreecommitdiff
path: root/lib/rubygems/gem_runner.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/gem_runner.rb')
-rw-r--r--lib/rubygems/gem_runner.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/rubygems/gem_runner.rb b/lib/rubygems/gem_runner.rb
index 8335a0ad03..4cb924677f 100644
--- a/lib/rubygems/gem_runner.rb
+++ b/lib/rubygems/gem_runner.rb
@@ -29,6 +29,7 @@ class Gem::GemRunner
# Run the gem command with the following arguments.
def run(args)
+ validate_encoding args
build_args = extract_build_args args
do_configuration args
@@ -72,6 +73,14 @@ class Gem::GemRunner
private
+ def validate_encoding(args)
+ invalid_arg = args.find {|arg| !arg.valid_encoding? }
+
+ if invalid_arg
+ raise Gem::OptionParser::InvalidArgument.new("'#{invalid_arg.scrub}' has invalid encoding")
+ end
+ end
+
def do_configuration(args)
Gem.configuration = @config_file_class.new(args)
Gem.use_paths Gem.configuration[:gemhome], Gem.configuration[:gempath]