RoPkg::Rsync::Atom.3pm

Langue: en

Version: 2006-06-09 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

RoPkg::Rsync::Atom - the smallest unit in a rsync configuration file

SYPONSIS

  #!/usr/bin/perl
 
 
  use strict;
  use warnings;
 
 
  use RoPkg::Rsync::Atom;
 
 
  sub main {
    my $a = new RoPkg::Rsync::Atom(
                  type  => 'param',
                  name  => 'uid',
                  value => 'nobody',
                );
 
 
    print $a->ToString(0),$/;
 
 
    return 0;
  }
 
 
  main();
 
 

DESCRIPTION

RoPkg::Rsync::Atom is a class used by RoPkg::Rsync modules. The Atom is considered the smallest part of any rsync configuration file. An atom can be (at this moment):
param
blank
comment

METHODS

All methods, throw the OutsideClass exception, if you use them as class methods.

Example:

  perl -MRoPkg::Rsync::Atom -e 'RoPkg::Rsync::Atom->Type;'
  Called outside class instance
 
 

Besides OutsideClass the methods are throwing other exceptions as well. Refer to each method documentation for more information.

new()

The constructor of the class. new accepts 3 parameters grouped inside a hash:

*) type - type of the atom
*) name - name of the atom
*) value - value of the atom

The type parameter must always be present. If the type parameter is not present, a Param::Missing exception is raised. At this moment, the atoms have 3 types:

*) param - a parameter in the standard form (name = value)
*) comment - a comment
*) blank - a blank line (or only with separators)

If the value of the type parameter is not one of the ones specified a Param::Wrong exception is raised.

Examples:

example 1 (param):

  my $a = new RoPkg::Rsync::Atom(
                type  => 'param',
                name  => 'gid',
                value => 'users',
              );
 
 

example 2 (param):

  my $a = new RoPkg::Rsync::Atom(type => 'param');
  $a->Name('gid');
  $a->Value('users');
  print 'Name of the atom is:',$a->Name,$/;
 
 

example 3 (comment):

  my $a = new RoPkg::Rsync::Atom(
                type  => 'comment',
                value => '# this is the group id',
              );
 
 

example 4 (blank):

  my $a = new RoPkg::Rsync::Atom(
                type  => 'blank',
                value => q{ },
              );
 
 

Name($new_name)

The Name method is a get/set method. If $new_name exists (and his value is defined) then the set behaviour is selected, otherwise the method acts as a get method. Returns the name of the atom.

Value($new_value)

The Value method is a get/set method. If $new_value exists (and his value is defined) then the set behaviour is selected, otherwise the method acts as a get method. Returns the value of the atom.

ToString($indent, $spaces)


ToString($indent, $spaces)

Returns the string representation of the atom. Accepts 2 parameters: indent and spaces. $indent is a true/false value specifing that the string representation should be prefixed with a tab character; $spaces is used to compute the number of spaces that should be added after the atom name, so that the total length of the parameter name to match the $spaces value.

Example:

  my $a = new RoPkg::Rsync::Atom(
                type  => 'param',
                name  => 'gid',
                value => 'users',
              );
 
 
  print $a->ToString(0, 6),$/,
        $a->ToString(0, 5),$/,
        $a->ToString(0, 4),$/,
        $a->ToString(0, 3),$/,
        $a->ToString(1, 6),$/,
        $a->ToString(1, 5),$/,
        $a->ToString(1, 4),$/,
        $a->ToString(1, 3),$/;
 
 

The result is:
 gid    = users
 gid   = users
 gid  = users
 gid = users
        gid    = users
        gid   = users
        gid  = users
        gid = users

Type

Returns the type (string representation) of the atom.

PREREQUISITES

perl 5.008 (or later) is required. Besides perl, you must have the following:
RoPkg::Exceptions
English
Scalar::Util

SEE ALSO

RoPkg::Rsync::Node RoPkg::Rsync::ConfFile RoPkg::Exceptions

AUTHOR

Subredu Manuel <diablo@iasi.roedu.net>

LICENSE

Copyright (C) 2005 Subredu Manuel. All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The LICENSE file contains the full text of the license.