NAME
MooseX::ClassAttrSugar - Create add methods for merging defaults of HashRef attributes
SYNOPSIS
package MyApp::Parent;
use Moose;
has 'foo_configs' => ( is => 'ro', builder => '_build_foo_configs', isa => 'HashRef' );
sub _build_foo_configs { +{ 'base_setting1' => 'Some data' } }
# then later ...
package MyApp::Subclass;
use Moose;
extends 'MyApp::Parent';
use MooseX::ClassAttrSugar;
setup_apply_methods_for('foo_configs');
apply_default_foo_configs(
setting2 => 'Some other data',
setting3 => 'Some more data'
);
# then later...
my $obj = MyApp::Subclass->new;
# $obj->foo_configs is initialized containing:
# {
# base_setting1 => 'Some data',
# setting2 => 'Some other data',
# setting3 => 'Some more data'
# }
$obj->apply_foo_configs(
setting4 => 'blah',
setting5 => 'baz'
);
# $obj->foo_configs is now:
# {
# base_setting1 => 'Some data',
# setting2 => 'Some other data',
# setting3 => 'Some more data',
# setting4 => 'blah',
# setting5 => 'baz'
# }
TODO
Add support for other types, like ArrayRef Get flamed in #moose :)
AUTHOR
vs following mst's directions