aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/package
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/package')
-rw-r--r--lib/rubygems/package/tar_input.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/rubygems/package/tar_input.rb b/lib/rubygems/package/tar_input.rb
index 26b4e81ead..5ac93ff336 100644
--- a/lib/rubygems/package/tar_input.rb
+++ b/lib/rubygems/package/tar_input.rb
@@ -49,8 +49,13 @@ class Gem::Package::TarInput
sio.rewind
end
- # TODO use Gem.gunzip
- gzis = Zlib::GzipReader.new(sio || entry)
+ # Ruby 1.8 doesn't have encoding and YAML is UTF-8
+ args = [sio || entry]
+ args << { :external_encoding => Encoding::UTF_8 } if
+ Object.const_defined?(:Encoding)
+
+ gzis = Zlib::GzipReader.new(*args)
+
# YAML wants an instance of IO
@metadata = load_gemspec(gzis)
has_meta = true