NAME¶
Debian::Control::Stanza - single stanza of Debian source package control file
SYNOPSIS¶
package Binary;
use base 'Debian::Control::Stanza';
use constant fields => qw( Package Depends Conflicts );
1;
DESCRIPTION¶
Debian::Control::Stanza ins the base class for Debian::Control::Stanza::Source
and Debian::Control::Stanza::Binary classes.
FIELDS¶
Stanza fields are to be defined in the class method
fields. Typically
this can be done like:
use constant fields => qw( Foo Bar Baz );
Fields that are to contain dependency lists (as per
"is_dependency_list" method below) are automatically converted to
instances of the Debian::Dependencies class.
CONSTRUCTOR¶
- new
- new( { field => value, ... } )
- Creates a new Debian::Control::Stanza object and optionally initializes it
with the supplied data. The object is hashref based and tied to
Tie::IxHash.
You may use dashes for initial field names, but these will be converted to
underscores:
my $s = Debian::Control::Stanza::Source( {Build-Depends => "perl"} );
print $s->Build_Depends;
METHODS¶
- is_dependency_list($field)
- Returns true if $field contains a list of
dependencies. By default returns true for the following fields:
- Build_Depends
- Build_Depends_Indep
- Build_Conflicts
- Build_Conflicts_Indep
- Depends
- Conflicts
- Enhances
- Replaces
- Breaks
- Pre_Depends
- Recommends
- Suggests
- is_comma_separated($field)
- Returns true if the given field is to contain a comma-separated list of
values. This is used in stringification, when considering where to wrap
long lines.
By default the following fields are flagged to contain such lists:
- All fields that contain dependencies (see above)
- Uploaders
- Provides
- get($field)
- Overrides the default get method from Class::Accessor with Tie::IxHash's
FETCH.
- set( $field, $value )
- Overrides the default set method from Class::Accessor with Tie::IxHash's
STORE. In the process, converts $value to an instance
of the Debian::Dependencies class if $field is to
contain dependency list (as determined by the
"is_dependency_list" method).
- as_string([$width])
- Returns a string representation of the object. Ready to be printed into a
real debian/control file. Used as a stringification operator.
Fields that are comma-separated use one line per item, except if they are
like "${some:Field}", in which case they are wrapped at
$widthth column. $width defaults
to 80.
COPYRIGHT & LICENSE¶
Copyright (C) 2009 Damyan Ivanov dmn@debian.org
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License version 2 as published by the Free
Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE.