NAME
Footprintless::MixableBase - A base class for using mixins
VERSION
version 1.18
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.