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 )