summaryrefslogtreecommitdiffstats
path: root/lib/App/ArchLinux/PackagerTools
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xinu.at>2018-12-17 00:38:24 +0100
committerFlorian Pritz <bluewind@xinu.at>2018-12-17 00:38:24 +0100
commit90535df46d0d8b4052497a9dc0beacd8c186066f (patch)
tree147063c319cc1469d15af6f5e8c1355997ca0d7f /lib/App/ArchLinux/PackagerTools
parentd7cd126cc8326f42713c20d2d95091156b44e58f (diff)
downloadApp-ArchLinux-PackagerTools-90535df46d0d8b4052497a9dc0beacd8c186066f.tar.gz
App-ArchLinux-PackagerTools-90535df46d0d8b4052497a9dc0beacd8c186066f.tar.xz
Use context variable to track singletons
Signed-off-by: Florian Pritz <bluewind@xinu.at>
Diffstat (limited to 'lib/App/ArchLinux/PackagerTools')
-rw-r--r--lib/App/ArchLinux/PackagerTools/CPAN.pm5
-rw-r--r--lib/App/ArchLinux/PackagerTools/Pacman.pm2
2 files changed, 5 insertions, 2 deletions
diff --git a/lib/App/ArchLinux/PackagerTools/CPAN.pm b/lib/App/ArchLinux/PackagerTools/CPAN.pm
index 1e1c86c..e7521b6 100644
--- a/lib/App/ArchLinux/PackagerTools/CPAN.pm
+++ b/lib/App/ArchLinux/PackagerTools/CPAN.pm
@@ -38,16 +38,19 @@ Returns a new instance.
=cut
method new($class: $deps = {}) {
- $deps->{packages_details_fetcher} //= App::ArchLinux::PackagerTools::CPAN::PackagesDetailsFetcher->new();
+ $deps->{packages_details_fetcher} //= App::ArchLinux::PackagerTools::CPAN::PackagesDetailsFetcher->new({$deps->%{context}});
return $class->new_no_defaults($deps);
}
method new_no_defaults($class: $deps = {}) {
+ return $deps->{context}->{__PACKAGE__} if defined $deps->{context}->{__PACKAGE__};
+
my $self = {};
bless $self, $class;
$self->{deps} = $deps;
$self->{dist_lc_map} = {};
$self->{dists} = {};
+ $deps->{context}->{__PACKAGE__} = $self;
return $self;
}
diff --git a/lib/App/ArchLinux/PackagerTools/Pacman.pm b/lib/App/ArchLinux/PackagerTools/Pacman.pm
index 39c78e5..f541721 100644
--- a/lib/App/ArchLinux/PackagerTools/Pacman.pm
+++ b/lib/App/ArchLinux/PackagerTools/Pacman.pm
@@ -36,7 +36,7 @@ Returns a new instance.
method new($class: $deps = {}) {
- $deps->{cpan} //= App::ArchLinux::PackagerTools::CPAN->new();
+ $deps->{cpan} //= App::ArchLinux::PackagerTools::CPAN->new({$deps->%{context}});
$deps->{pkgname_cpan_name_map} //= {
# pkgname => cpan_name
'perl-critic' => 'Perl::Critic',