View on
MetaCPAN
Lucas Theisen > Footprintless-1.27 > Footprintless::MixableBase

Download:
Footprintless-1.27.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

Open  0
View/Report Bugs
Module Version: 1.27   Source  

NAME ^

Footprintless::MixableBase - A base class for using mixins

VERSION ^

version 1.27

SYNOPSIS ^

    package Foo;

    use parent qw(Footprintless::MixableBase)

    use Footprintless::Mixins qw(
        _sub_entity
        ...
    );

    sub _init {
        my ($self, %options);
        $self->{debug} = $options{debug};
        $self->{user} = $self->_entity('user', 1);
        return $self;
    }

    sub get_user {
        my ($self) = @_;
        print("getting user\n") if ($self->{debug});
        return $self->{user};
    }

    package main;

    use Footprintless::Util qw(factory);

    my $foo = Foo->new(
        factory({
            root => {
                foo => {
                    user => 'bar'
                }
            }
        }),
        'root.foo',
        debug => 1);

    my $user = $foo->get_user(); # returns 'bar'

DESCRIPTION ^

Provides the boilerplate constructor for packages that want to use Footprintless::Mixins. Specifically, strips off the first two parameters ($factory and $coordinate) and sets them as member variables ($self-{factory}> and $self-{coordinate}>). Then it passes on the remainder of the arguments to the _init method. Subclasses should override _init for additional initialization.

AUTHOR ^

Lucas Theisen <lucastheisen@pastdev.com>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2016 by Lucas Theisen.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

SEE ALSO ^

Please see those modules/websites for more information related to this module.

syntax highlighting: