Skip to content

Instantly share code, notes, and snippets.

@willert
Created October 8, 2009 11:58
Show Gist options
  • Save willert/204967 to your computer and use it in GitHub Desktop.
Save willert/204967 to your computer and use it in GitHub Desktop.
has partner_class => (
is => 'ro',
isa => ClassName,
default => 'WeCARE::Partner::Repository::Partner',
);
has _partner_conf => (
is => 'ro',
isa => HashRef[HashRef],
init_arg => 'partner',
lazy_required => 1,
clearer => '_clear_partner_conf',
);
has partners => (
is => 'bare',
isa => 'HashRef[WeCARE::Partner::Repository::Partner]',
traits => [qw/Hash/],
init_arg => undef,
lazy => 1,
builder => '_build_partners',
handles => {
partner => 'get',
partners => 'values',
has_partner => 'exists',
},
);
method _build_partners {
my %partner;
for my $name ( keys %{ $self->_partner_conf } ) {
$partner{ $name } = $self->partner_class->new({
%{ $self->_partner_conf->{ $name } },
name => $name, system => $self,
});
}
$self->_clear_partner_conf;
return \%partner;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment