logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Debian::Control::Stanza - single stanza of Debian source package control file

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;

Description

       Debian::Control::Stanza is 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.

   User-definedfields
       User-defined fields are supported. These start with "X", optionally followed by "S", "B" or "C", then
       "_", capital letter and other letters and digits.

       Examples: "X_Moon_Phase", "XS_Hemisphere".

       See <https://www.debian.org/doc/debian-policy/#user-defined-fields>.

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_Depends_Arch
           Build_Conflicts
           Build_Conflicts_Indep
           Build_Conflicts_Arch
           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
       looks_like_an_x_field($field)
           Returns true if $field is considered appropriate to name a user-defined field.

       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.

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;

See Also