NAME
Ambrosia::Meta - another tool to build classes for Perl 5.
VERSION
version 0.010
SYNOPSIS
package MyClass;
use Ambrosia::Meta;
class
{
extends => [qw/base_class1 base_class2/],
public => [qw/public_field1 public_field2/],
protected => [qw/protected_field1 protected_field2/],
private => [qw/private_field1 private_field2/],
};
sub next
{
my $self = shift;
return $self->private1++;
}
1;
DESCRIPTION
Ambrosia::Meta used to create classes with the definition of access rights to the fields. Ambrosia::Meta is a sealed class, you cannot use it as base class for your classes.
You can mark the created class one of qualifiers, such as inheritable (the default), abstract and sealed:
class inheritable
{
};
or equivalent
class
{
};
class abstract
{
};
class sealed
{
};
- class inheritable
-
The usual definition of the class.
- class abstract
-
If you mark your class as abstract it means that you cannot create an object with type of this class.
- class sealed
-
This means that you cannot derive a class from it.
KEYWORDS
- extends
-
This is the reference to the list of base classes.
- public
-
This is the reference to the list of public fields.
- protected
-
This is the reference to the list of protected fields.
- private
-
This is the reference to the list of private fields.
ATTRIBUTES
In your class created with the help of Ambrosia::Meta you can use several predefined attributes for methods of class.
- Public
-
Does nothing. Just marked that this method is public.
- Protected
-
Marks method as protected method.
- Private
-
Marks method as private method.
- Abstract
-
Marks method as abstract method. If at least one method in class have this attribute this class marks as abstract.
METHODS
All classes created with the help of Ambrosia::Meta have Ambrosia::core::Object as a base class.
WARNING! Method names in the generated class can not start with "__AMBROSIA". Also, it concerns the package variables.
DEPENDENCIES
Exporter Ambrosia::error::Exceptions Ambrosia::core::Object
THREADS
Not tested.
BUGS
Please report bugs relevant to Ambrosia
to <knm[at]cpan.org>.
SEE ALSO
Ambrosia Ambrosia::core::Object
COPYRIGHT AND LICENSE
Copyright (C) 2010-2012 Nickolay Kuritsyn. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
Nikolay Kuritsyn (knm[at]cpan.org)