CPAN::PackageDetails::Entry - Handle a single record of 02packages.details.txt.gz


CPAN-PackageDetails documentation Contained in the CPAN-PackageDetails distribution.

Index


Code Index:

NAME

Top

CPAN::PackageDetails::Entry - Handle a single record of 02packages.details.txt.gz

SYNOPSIS

Top

Used internally by CPAN::PackageDetails

DESCRIPTION

Top

An entry is a single line from 02packages.details.txt that maps a package name to a source. It's a whitespace-separated list that has the values for the column identified in the "columns" field in the header.

By default, there are three columns: package name, version, and path.

Inside a CPAN::PackageDetails object, the actual work and manipulation of the entries are handled by delegate classes specified in entries_class and entry_class). At the moment these are immutable, so you'd have to subclass this module to change them.

Methods

new( FIELD1 => VALUE1 [, FIELD2 => VALUE2] )

Create a new entry

path
version
package_name

Access values of the entry.

as_string( @column_names )

Formats the Entry as text. It joins with whitespace the values for the column names you pass it. You get the newline automatically.

Any values that are not defined (or the empty string) turn into the literal string 'undef' to preserve the columns in the output.

TO DO

Top

SEE ALSO

Top

SOURCE AVAILABILITY

Top

This source is in Github:

	http://github.com/briandfoy/cpan-packagedetails

AUTHOR

Top

brian d foy, <bdfoy@cpan.org>

COPYRIGHT AND LICENSE

Top


CPAN-PackageDetails documentation Contained in the CPAN-PackageDetails distribution.
package CPAN::PackageDetails::Entry;	
use strict;
use warnings;

use vars qw($VERSION);
$VERSION = '0.25';

use Carp;

sub new
	{
	my( $class, %args ) = @_;
	
	bless { %args }, $class
	}

sub path         { $_[0]->{path} }
sub version      { $_[0]->{version} }
sub package_name { $_[0]->{'package name'} }
	
sub as_string
	{
	my( $self, @columns ) = @_;
	
	no warnings 'uninitialized';
	# can't check defined() because that let's the empty string through
	return join( "\t", 
		map { length $self->{$_} ? $self->{$_} : 'undef' } @columns 
		) . "\n";
	}

1;