NAME

Net::Gnats::PR - Represents a Gnats PR.

SYNOPSIS

use Net::Gnats;
my $g = Net::Gnats->new();
$g->connect();
my @dbNames = $g->getDBNames();
$g->login("default","somedeveloper","password");
my $PRtwo = $g->getPRByNumber(2);
print $PRtwo->asString();
my $newPR = Net::Gnats::PR->new();
$newPR->setField("Submitter-Id","developer");
$g->submitPR($newPR);
$g->disconnect();

DESCRIPTION

Net::Gnats::PR models a GNU Gnats PR (Problem Report). The module allows proper formatting and parsing of PRs through an object oriented interface.

The current version of Net::Gnats (as well as related information) is available at http://gnatsperl.sourceforge.net/

COMMON TASKS

CREATING A NEW PR

The Net::Gnats::PR object acts as a container object to store information about a PR (new or otherwise). A new PR is submitted to gnatsperl by constructing a PR object.

my $newPR = Net::Gnats::PR->new();
$newPR->setField("Submitter-Id","developer");
$newPR->setField("Originator","Doctor Wifflechumps");
$newPR->setField("Organization","GNU");
$newPR->setField("Synopsis","Some bug from perlgnats");
$newPR->setField("Confidential","no");
$newPR->setField("Severity","serious");
$newPR->setField("Priority","low");
$newPR->setField("Category","gnatsperl");
$newPR->setField("Class","sw-bug");
$newPR->setField("Description","Something terrible happened");
$newPR->setField("How-To-Repeat","Like this.  Like this.");
$newPR->setField("Fix","Who knows");

Obviously, fields are dependent on a specific gnats installation, since Gnats administrators can rename fields and add constraints.

CREATING A NEW PR OBJECT FROM A PREFORMATTED PR STRING

Instead of setting each field of the PR individually, the setFromString() method is available. The string that is passed to it must be formatted in the way Gnats handles the PRs (i.e. the '>Field: Value' format. You can see this more clearly by looking at the PR files of your Gnats installation). This is useful when handling a Gnats email submission ($newPR->setFromString($email)) or when reading a PR file directly from the database.

METHOD DESCRIPTIONS

new()

Constructor, no arguments.

setField()

Sets a gnats field value. Expects two arguments: the field name followed by the field value.

getField()

Returns the string value of a PR field.

setNumber()

Sets the gnats PR number. This is the only field name explicitly known to Net::Gnats::PR. Provide PR number as sole argument.

getNumber()

Returns the gnats PR number. This is the only field name explicitly known to Net::Gnats::PR.

asHash()

Returns the PR formatted as a hash. The returned hash contains field names as keys, and the corresponding field values as hash values.

getKeys()

Returns the list of PR fields contained in the object.

asString()

Returns the PR object formatted as a Gnats recongizable string. The result is suitable for submitting to Gnats.

setFromString()

Parses a Gnats formatted PR and sets the object's fields accordingly.

BUGS

Bug reports are very welcome. Please submit to the project page (noted below).

AUTHOR

Mike Hoolehan, <lt>mike@sycamore.us<gt> Project hosted at sourceforge, at http://gnatsperl.sourceforge.net

COPYRIGHT

Copyright (c) 1997-2001, Mike Hoolehan. All Rights Reserved. This module is free software. It may be used, redistributed, and/or modified under the same terms as Perl itself.