Николай Курицын > Ambrosia-0.010 > Ambrosia::Meta

Download:
Ambrosia-0.010.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.01   Source  

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)

syntax highlighting: