initial sketch of classes
[scpubgit/App-EzPz.git] / lib / Email / EzPz / List.pm
1 package Email::EzPz::List;
2
3 use Module::Runtime qw(use_module);
4 use Moo;
5
6 with 'Email::EzPz::ListCore';
7
8 sub sublist_type { () }
9
10 foreach my $type (qw(allow deny mod digest)) {
11   has $type => (
12     is => 'ro',
13     lazy => 1,
14     default => sub { shift->_build_sublist($type) }
15   );
16 }
17
18 sub _build_sublist {
19   my ($self, $type) = @_;
20   return use_module('Email::EzPz::SubList')->new(
21     (map +($_ => $self->$_), qw(list_dir ezmlm_bindir)),
22     sublist_type => $type
23   );
24 }
25
26 1;