From 90535df46d0d8b4052497a9dc0beacd8c186066f Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Mon, 17 Dec 2018 00:38:24 +0100 Subject: Use context variable to track singletons Signed-off-by: Florian Pritz --- lib/App/ArchLinux/PackagerTools/CPAN.pm | 5 ++++- lib/App/ArchLinux/PackagerTools/Pacman.pm | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'lib/App/ArchLinux/PackagerTools') 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', -- cgit v1.2.3-24-g4f1b