83d86d1a2922a3d3528da98867b6e85c13527b84
[p5sagit/Email-Archive.git] / lib / Email / Archive.pm
1 package Email::Archive;
2 use Moose;
3 use Module::Load;
4
5 has storage => (
6   is    => 'rw',
7   does  => 'Email::Archive::Storage',
8   handles     => [qw/
9     store
10     retrieve
11     search
12   /],
13   lazy_build  => 1,
14 );
15
16 has dsn => (
17   is  => 'ro',
18   isa => 'Str',
19   required => 1,
20 );
21
22 has storage_class => (
23   is  => 'ro',
24   isa => 'Str',
25   required => 1,
26   default  => 'Email::Archive::Storage::DBI',
27 );
28
29 sub _build_storage {
30   my ($self) = @_;
31   load $self->storage_class;
32   my $storage = $self->storage_class->new(dsn => $self->dsn);
33 }
34
35 1;