summaryrefslogtreecommitdiff
path: root/lib/SlackBuild/Archive/Extractor.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/SlackBuild/Archive/Extractor.pm')
-rw-r--r--lib/SlackBuild/Archive/Extractor.pm25
1 files changed, 10 insertions, 15 deletions
diff --git a/lib/SlackBuild/Archive/Extractor.pm b/lib/SlackBuild/Archive/Extractor.pm
index 90a833f..15ed76f 100644
--- a/lib/SlackBuild/Archive/Extractor.pm
+++ b/lib/SlackBuild/Archive/Extractor.pm
@@ -12,14 +12,19 @@ sub new {
}
sub backend {
- my $class = shift;
- return $class->new(@_)->_backend;
+ my ($class, $archive, @args) = @_;
+ if ($archive->downloaded_html) {
+ return new SlackBuild::Archive::Extractor::HTTP($archive, @args);
+ } else {
+ return new SlackBuild::Archive::Extractor::Tar($archive, @args);
+ }
}
-sub archive { shift->{_archive} };
-sub destdir { shift->{_destdir} };
-sub tempfile { shift->{_tempfile} };
+sub archive { shift->{_archive} }
+sub destdir { shift->{_destdir} }
+sub tempfile { shift->{_tempfile} }
sub rewind { seek shift->tempfile, 0, 0 }
+
sub error {
my $self = shift;
return $self->archive->error(@_);
@@ -32,14 +37,4 @@ sub extract {
return $self->archive->error('unrecognized download format');
}
-sub _backend {
- my $self = shift;
-
- if ($self->archive->downloaded_html) {
- return bless $self, 'SlackBuild::Archive::Extractor::HTTP';
- } else {
- return bless $self, 'SlackBuild::Archive::Extractor::Tar';
- }
-}
-
1;

Return to:

Send suggestions and report system problems to the System administrator.