extract_files(destination_dir)public
Extracts the files in this package into destination_dir
# File lib/rubygems/package/old.rb, line 52
def extract_files destination_dir
verify
errstr = "Error reading files from gem"
@gem.with_read_io do |io|
read_until_dashes io # spec
header = file_list io
raise Gem::Exception, errstr unless header
header.each do |entry|
full_name = entry['path']
destination = install_location full_name, destination_dir
file_data = String.new
read_until_dashes io do |line|
file_data << line
end
file_data = file_data.strip.unpack("m")[0]
file_data = Zlib::Inflate.inflate file_data
raise Gem::Package::FormatError, "#{full_name} in #{@gem} is corrupt" if
file_data.length != entry['size'].to_i
FileUtils.rm_rf destination
FileUtils.mkdir_p File.dirname destination
File.open destination, 'wb', entry['mode'] do |out|
out.write file_data
end
verbose destination
end
end
rescue Zlib::DataError
raise Gem::Exception, errstr
end Related methods
- Instance methods
- contents
- extract_files
- file_list
- read_until_dashes
- skip_ruby
- spec
- verify
- Class methods
- new