Net::Gnats::Command - Command factory and base class.
0.18
Encapsulates all Gnats Daemon commands and their command processing codes.
This module implements the factory pattern for retrieving specific commands.
Instantiates a new Net::Gnats::Command object.
$c = Net::Gnats::Command->new;
This class is not instantiated directly; it is a superclass for all Gnats command objects.
Sets and retrieves a Net::Gnats::FieldInstance to the command.
Sets and retrieves a Net::Gnats::FieldInstance for Change Reasons to the command.
This may be removed in the future given a FieldInstance now manages its own Change Reason.
For commands that must send a serialized PR, or serialized field, after issuing a command.
Retrieves the valid error codes for the command. Not used yet.
my $codes = $c->error_codes;
Retrieves the valid success codes for the command. Not used yet.
my $codes = $c->success_codes;
Manages the response outcome from the server encapsulated in a Net::Gnats::Response object.
When the command has not been issued yet, the value will be undef.
$response = $c->response; $code = $c->response->code;
A flag for knowing if multiple responses are expected. Normally used and managed internally. May become a private method later.
Returns the currently configured command as a string.
This method is used for commands where 1..n fields can be defined for a given command, and the issuer needs to match up field names to values.
$c = Net::Gnats::Command->fdsc( [ 'FieldA', 'FieldB' ]; Net::Gnats->current_session->issue( $c ); $value = $c->from( 'FieldA' ) unless not $c->is_ok;
The following exported methods are helpers for executing all Gnats protocol commands.
my $c = Net::Gnats::Command->admv;
Manages the command for appending field content to an existing PR field. The field key is a Net::Gnats::FieldInstance object.
$c = Net::Gnats::Command->appn( pr_number => 5, field => $field );
See Net::Gnats::Command::APPN for details.
Manages the command for changing databases within the same Net::Gnats::Session instance.
$c = Net::Gnats::Command->chdb( database => 'external' );
See Net::Gnats::Command::CHDB for details.
Manages the command for checking the validity of a PR before sending.
# New problem reports: $c = Net::Gnats::Command->chek( type => 'initial', pr => $pr ); # Existing problem reports: $c = Net::Gnats::Command->chek( pr => $pr );
See Net::Gnats::Command::CHEK for details.
Manages the command to list server databases. This command is the only command that typically does not require credentials.
$c = Net::Gnats::Command->dbls;
See Net::Gnats::Command::DBLS for details.
Manages the command for returning the description of the databases existing on the server.
$c = Net::Gnats::Command->dbdesc;
See Net::Gnats::Command::DBDESC for details.
Manages the command for deleting a PR from the database. Only those with 'admin' credentials can successfully issue this command.
$c = Net::Gnats::Command->delete_pr( pr => $pr );
See Net::Gnats::Command::DELETE for details.
Manages the command for submitting an update to an existing PR to the database.
$c = Net::Gnats::Command->edit( pr => $pr );
See Net::Gnats::Command::EDIT for details.
Manages the command for setting the active email address for the session. This is most relevant when submitting or editing PRs.
$address = 'joe@somewhere.com'; $c = Net::Gnats::Command->editaddr( address => $address );
See Net::Gnats::Command::EDITADDR for details.
Manages the command for setting the query expression for a PR. Query expressions AND together.
This method may change in the future.
$c = Net::Gnats::Command->expr( expressions => ['foo="bar"', 'bar="baz"'] );
See Net::Gnats::Command::EXPR for details.
Manages the command for retrieving the description for one or more fields.
$c = Net::Gnats::Command->fdsc( fields => 'MyField' ); $c = Net::Gnats::Command->fdsc( fields => [ 'Field1', 'Field2' ] );
See Net::Gnats::Command::FDSC for details.
Manages the command for retrieving field flags for one or more fields.
$c = Net::Gnats::Command->fieldflags( fields => 'MyField' ); $c = Net::Gnats::Command->fieldflags( fields => [ 'Field1', 'Field2' ] );
See Net::Gnats::Command::FIELDFLAGS for details.
Manages the command for retrieving the data type for one or more fields.
$c = Net::Gnats::Command->ftyp( fields => 'MyField' ); $c = Net::Gnats::Command->ftyp( fields => [ 'Field1', 'Field2' ] );
See Net::Gnats::Command::FTYP for details.
Manages the command for retrieving the type information for a field. Relevant to MultiEnum fields only.
$c = Net::Gnats::Command->ftypinfo( field => 'MyField' ); $c = Net::Gnats::Command->ftypinfo( field => 'MyField', property => 'separators );
See Net::Gnats::Command::FTYPINFO for details.
Manages the command for retrieving the set field validators defined in the Gnats schema.
$c = Net::Gnats::Command->fvld( field => 'MyField' );
See Net::Gnats::Command::FVLD for details.
Manages the command for retrieving field default values.
$c = Net::Gnats::Command->inputdefault( fields => 'MyField' ); $c = Net::Gnats::Command->inputdefault( fields => [ 'Field1', 'Field2' ] );
See Net::Gnats::Command::INPUTDEFAULT for details.
Manages the command for different lists that can be retrieved from Gnats.
$c = Net::Gnats::Command->list( subcommand => 'Categories' ); $c = Net::Gnats::Command->list( subcommand => 'Submitters' ); $c = Net::Gnats::Command->list( subcommand => 'Responsible' ); $c = Net::Gnats::Command->list( subcommand => 'States' ); $c = Net::Gnats::Command->list( subcommand => 'FieldNames' ); $c = Net::Gnats::Command->list( subcommand => 'InitialInputFields' ); $c = Net::Gnats::Command->list( subcommand => 'InitialRequiredFields' ); $c = Net::Gnats::Command->list( subcommand => 'Databases' );
See Net::Gnats::Command::LIST for details.
Manages the command for locking the gnats main database.
$c = Net::Gnats::Command->lkdb;
See Net::Gnats::Command::LKDB for details.
Manages the command for locking a specific PR. Usually this occurs prior to updating a PR through the edit command.
$c = Net::Gnats::Command->lock_pr( pr => $pr, user => $user ); $c = Net::Gnats::Command->lock_pr( pr => $pr, user => $user, pid => $pid );
See Net::Gnats::Command::LOCK for details.
Manages the command for setting the PR output format. Net::Gnats parses 'full' format only. If you choose another format, you can retrieve the response via $c->response->as_string.
$c = Net::Gnats::Command->qfmt( format => 'full' );
See Net::Gnats::Command::QFMT for details.
Manages the command for querying Gnats. It assumes the expressions have already been set. If specific numbers are set, the command will query only those PR numbers.
$c = Net::Gnats::Command->quer; $c = Net::Gnats::Command->quer( pr_numbers => ['10'] ); $c = Net::Gnats::Command->quer( pr_numbers => ['10', '12'] );
See Net::Gnats::Command::QUER for details.
Manages the command for disconnecting the current Gnats session.
$c = Net::Gnats::Command->quit;
See Net::Gnats::Command::QUIT for details.
Manages the command for replacing field contents.
See Net::Gnats::Command::REPL for details.
Manages the command for resetting the index and any query expressions on the server.
$c = Net::Gnats::Command->rset;
See Net::Gnats::Command::RSET for details.
Manages the command for submitting a new PR to Gnats. If the named PR already has a 'Number', a new PR with the same field contents will be created.
$c = Net::Gnats::Command->subm( pr => $pr );
See Net::Gnats::Command::SUBM for details.
Manages the command for unlocking the Gnats main database.
$c = Net::Gnats::Command->undb;
See Net::Gnats::Command::UNDB for details.
Manages the command for unlocking a specific PR.
$c = Net::Gnats::Command->unlk( pr_number => $pr->get_field('Number')->value );
See Net::Gnats::Command::UNLK for details.
Manages the command for setting the security context for the session.
$c = Net::Gnats::Command->user( username => $username, password => $password );
See Net::Gnats::Command::USER for details.
Manages the command for validating a specific field. The field is a Net::Gnats::FieldInstance object.
$c = Net::Gnats::Command->vfld( field => $field ); $c = Net::Gnats::Command->vfld( field => $pr->get_field('Synopsis');
See Net::Gnats::Command::VFLD for details.
To install Net::Gnats, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::Gnats
CPAN shell
perl -MCPAN -e shell install Net::Gnats
For more information on module installation, please visit the detailed CPAN module installation guide.