From 31c94ffeb5f09d09ac2c86fc9e6614e38251a43d Mon Sep 17 00:00:00 2001 From: drbrain Date: Tue, 9 Jun 2009 21:38:59 +0000 Subject: Update to RubyGems 1.3.4 r2223 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rubygems/package/tar_reader/entry.rb | 43 +++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'lib/rubygems/package/tar_reader') diff --git a/lib/rubygems/package/tar_reader/entry.rb b/lib/rubygems/package/tar_reader/entry.rb index dcc66153d8..eeb70bf000 100644 --- a/lib/rubygems/package/tar_reader/entry.rb +++ b/lib/rubygems/package/tar_reader/entry.rb @@ -3,12 +3,19 @@ # See LICENSE.txt for additional licensing information. #-- -require 'rubygems/package' +## +# Class for reading entries out of a tar file class Gem::Package::TarReader::Entry + ## + # Header for this tar entry + attr_reader :header + ## + # Creates a new tar entry for +header+ that will be read from +io+ + def initialize(header, io) @closed = false @header = header @@ -21,24 +28,39 @@ class Gem::Package::TarReader::Entry raise IOError, "closed #{self.class}" if closed? end + ## + # Number of bytes read out of the tar entry + def bytes_read @read end + ## + # Closes the tar entry + def close @closed = true end + ## + # Is the tar entry closed? + def closed? @closed end + ## + # Are we at the end of the tar entry? + def eof? check_closed @read >= @header.size end + ## + # Full name of the tar entry + def full_name if @header.prefix != "" then File.join @header.prefix, @header.name @@ -47,6 +69,9 @@ class Gem::Package::TarReader::Entry end end + ## + # Read one byte from the tar entry + def getc check_closed @@ -58,20 +83,33 @@ class Gem::Package::TarReader::Entry ret end + ## + # Is this tar entry a directory? + def directory? @header.typeflag == "5" end + ## + # Is this tar entry a file? + def file? @header.typeflag == "0" end + ## + # The position in the tar entry + def pos check_closed bytes_read end + ## + # Reads +len+ bytes from the tar file entry, or the rest of the entry if + # nil + def read(len = nil) check_closed @@ -86,6 +124,9 @@ class Gem::Package::TarReader::Entry ret end + ## + # Rewinds to the beginning of the tar file entry + def rewind check_closed -- cgit v1.2.3