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:example1(param):
my $a = new RoPkg::Rsync::Atom(
type => 'param',
name => 'gid',
value => 'users',
);
example2(param):
my $a = new RoPkg::Rsync::Atom(type => 'param');
$a->Name('gid');
$a->Value('users');
print 'Name of the atom is:',$a->Name,$/;
example3(comment):
my $a = new RoPkg::Rsync::Atom(
type => 'comment',
value => '# this is the group id',
);
example4(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)
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.