package Archive::Peek::Tar;
use Moose;
use Archive::Tar;
extends 'Archive::Peek';
sub tar {
my $self = shift;
my $filename = $self->filename;
my $tar = Archive::Tar->new( $filename->stringify )
|| confess("Error reading $filename");
return $tar;
}
sub files {
my $self = shift;
my $tar = $self->tar;
my @files
= sort map { $_->full_path } grep { $_->is_file } $tar->get_files();
return @files;
}
sub file {
my ( $self, $filename ) = @_;
my $tar = $self->tar;
return $tar->get_content($filename);
}
1;