Ambrosia

 view release on metacpan or  search on metacpan

lib/Ambrosia/Utils/Container.pm  view on Meta::CPAN

    #    $_[0]->{scalar} = '' . $_[0]->{code}->();
    #}
    #return $_[0]->{scalar};
}

sub __as_func
{
    goto &__as_any;
}

sub __as_glob
{
    goto &__as_any;
}

sub __as_bool
{
    goto &__as_any;
    #unless ( exists $_[0]->{bool} )
    #{
    #    $_[0]->{bool} = '' . $_[0]->{code}->();
    #}
    #return $_[0]->{bool};
}

sub __as_string
{
#warn join ' ', grep $_, caller(0);
#warn join ' ', grep $_, caller(1);
#warn join ' ', grep $_, caller(2);
#warn join ' ', grep $_, caller(3);
#warn join ' ', grep $_, caller(4);
#warn join ' ', grep $_, caller(5);

    goto &__as_any;
    #unless ( exists $_[0]->{string} )
    #{
    #    $_[0]->{string} = '' . $_[0]->{code}->();
    #}
    #return $_[0]->{string};
}

sub __as_number
{
    goto &__as_any;
}

sub ref
{
    my $self = shift;
    return CORE::ref $self->__as_any();
}

sub AUTOLOAD
{
    my $self = shift;
    my @param = @_;

    my $type = CORE::ref($self) or return;
    my ($func) = our $AUTOLOAD =~ /(\w+)$/
        or throw Ambrosia::error::Exception 'Error: cannot resolve AUTOLOAD: ' . $AUTOLOAD;
warn "AUTOLOAD: $func\n";
    my $p = $self->__as_any;

    if( CORE::ref($p) && eval {$p->can($func)} )
    {
        return $p->$func(@param );
    }
    else
    {
        throw Ambrosia::error::Exception 'Error: cannot resolve: ' . $AUTOLOAD;
    }
}

sub DESTROY
{
    #warn "DESTROY: @_\n";
}

1;
#so you can get acquainted with this code

__END__

=head1 NAME

Ambrosia::Utils::Container - storage container for named data.

=head1 VERSION

version 0.010

=head1 DESCRIPTION

C<Ambrosia::Utils::Container> is storage container for named data.

=head1 CONSTRUCTOR

=head1 THREADS

Not tested.

=head1 BUGS

Please report bugs relevant to C<Ambrosia> to <knm[at]cpan.org>.

=head1 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.

=head1 AUTHOR

Nikolay Kuritsyn (knm[at]cpan.org)

=cut



( run in 1.140 second using v1.01-cache-2.11-cpan-ceb78f64989 )