#!/usr/bin/perl
package Mail::Summary::Tools::CLI::Context;
use Moose;
use File::Save::Home ();
use Path::Class;
has homedir => (
isa => "Path::Class::Dir",
is => "rw",
lazy => 1,
default => sub { Path::Class::dir($_[0]->find_homedir) },
);
has cache => (
isa => "Object",
is => "rw",
lazy => 1,
default => sub {
my $self = shift;
$self->create_yamlcache($self->cache_storage);
},
);
has cache_storage => (
isa => "Path::Class::File",
is => "rw",
lazy => 1,
default => sub { $_[0]->homedir->file("cache") },
);
has nntp_overviews => (
isa => "Object",
is => "rw",
lazy => 1,
default => sub {
my $self = shift;
warn "loading " . $self->nntp_overview_storage;
$self->create_yamlcache($self->nntp_overview_storage);
},
);
has nntp_overview_storage=> (
isa => "Path::Class::File",
is => "rw",
lazy => 1,
default => sub { $_[0]->homedir->file("nntp_overviews") },
);
sub find_homedir {
my $self = shift;
return File::Save::Home::make_subhome_directory(
File::Save::Home::get_subhome_directory_status(".mailsum"),
);
}
sub create_yamlcache {
my ( $self, $path ) = @_;
require Mail::Summary::Tools::YAMLCache;
return Mail::Summary::Tools::YAMLCache->new( file => $path );
}
__PACKAGE__;
__END__
=pod
=head1 NAME
Mail::Summary::Tools::CLI::Context -
=head1 SYNOPSIS
use Mail::Summary::Tools::CLI::Context;
=head1 DESCRIPTION
=cut