Anansi-Class

 view release on metacpan or  search on metacpan

lib/Anansi/Class.pm  view on Meta::CPAN

            return $self->SUPER::implicate($caller, $parameter);
        }
        return if($@);
    }

=over 4

=item self I<(Blessed Hash, Required)>

An object of this namespace.

=item caller I<(Array, Required)>

An array containing the I<package>, I<file name> and I<line number> of the caller.

=item parameter I<(String, Required)>

A string containing the name to import.

=back

A virtual method.  Performs one module instance name import.  Called for each
name to import.

=cut


sub implicate {
    my ($self, $caller, $parameter) = @_;
    try {
        return $self->SUPER::implicate($caller, $parameter);
    }
    return if($@);
}


=head2 import

    use Anansi::Example qw(EXAMPLE_VARIABLE);

=over 4

=item self I<(Blessed Hash, Required)>

An object of this namespace.

=item parameters I<(Array, Optional)>

An array containing all of the names to import.

=back

Performs all required module name imports.  Indirectly called via an extending
module.

=cut


sub import {
    my ($self, @parameters) = @_;
    my $caller = caller();
    foreach my $parameter (@parameters) {
        my $value = $self->implicate($caller, $parameter);
        *{$caller.'::'.$parameter} = $value if(defined($value));
    }
}


=head2 initialise

    $OBJECT->initialise();

    $OBJECT->SUPER::initialise();

=over 4

=item self I<(Blessed Hash, Required)>

An object of this namespace.

=item parameters I<(Hash, Optional)>

Named parameters that were supplied to the I<new> method.

=back

A virtual method.  Called just after module instance object creation.

=cut


sub initialise {
    my ($self, %parameters) = @_;
}


=head2 namespace

=over 4

=item self I<(Blessed Hash, Required)>

An object of this namespace.

=back

Returns this object's namespace or B<undef> on error.

=cut


sub namespace {
    my ($self) = @_;
    return if(ref($self) =~ /^(|ARRAY|CODE|FORMAT|GLOB|HASH|IO|LVALUE|REF|Regexp|SCALAR|VSTRING)$/i);
    return ref($self);
}


=head2 new

    my $object = Anansi::Example->new();



( run in 2.865 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )