RPM-Query
view release on metacpan or search on metacpan
lib/RPM/Query/Capability.pm view on Meta::CPAN
package RPM::Query::Capability;
use strict;
use warnings;
use base qw{Package::New};
our $VERSION = '0.03';
=head1 NAME
RPM::Query - Perl object overlay of an RPM capability
=head1 SYNOPSIS
use RPM::Query;
my $rpm = RPM::Query->new;
my $capabilities = $rpm->requires('perl'); #isa ARRAY of RPM::Query::Capability
foreach my $capability (@$capabilities) {
printf "%s - %s\n", $capability->name, $capability->package->name;
}
=head1 DESCRIPTION
=head1 METHODS
=head2 capability_name
Returns the capability name with optional version as returns by the rpm command.
perl(Scalar::Util) >= 1.10
perl(strict)
=cut
sub capability_name {
my $self = shift;
$self->{'capability_name'} = shift if @_;
die("Error: capability_name property required") unless $self->{'capability_name'};
return $self->{'capability_name'};
}
sub _capability_name {
my $self = shift;
unless (defined $self->{'_capability_name'}) {
my $hash = {};
if ($self->capability_name =~ m/\A(.*)\s+(>=|<=|=)\s+(.*)\Z/) {
$hash->{'name'} = $1;
$hash->{'compare'} = $2;
$hash->{'version'} = $3;
} else {
$hash->{'name'} = $self->capability_name;
$hash->{'version'} = '';
$hash->{'compare'} = undef;
}
$self->{'_capability_name'} = $hash;
}
return $self->{'_capability_name'};
}
=head2 name
=cut
sub name {shift->_capability_name->{'name'}};
=head2 version
=cut
sub version {shift->_capability_name->{'version'}};
( run in 3.452 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )