first sketch of load/save processing functionality
[engit/Iron-Munger.git] / lib / IronMunger.pm
CommitLineData
372db818 1use MooseX::Declare;
2
3class IronMunger {
4
5 our $VERSION = '0.001000';
6
7 use aliased 'IronMunger::Monger';
8 use aliased 'IronMunger::PlaggerLoader';
9 use aliased 'IronMunger::StatsSaver';
10
11 use MooseX::Types::Moose qw(HashRef ClassName Str);
12
13 has mongers => (
14 is => 'ro', isa => HashRef[Monger], required => 1
15 default => sub { {} },
16 );
17
18 method load_from_plagger (ClassName $class: Str $dir) {
19 my $loader = PlaggerLoader->new(dir => $dir);
20 my $munger = $class->new;
21 $munger->mongers->{$_->full_name}
22 = $_ for @{$loader->mongers};
23 }
24
25 method save_monger_stats (Str $dir) {
26 my $saver = StatsSaver->new(dir => $dir);
27 $saver->mongers([ sort $_->full_name, values %{$self->mongers} ]);
28 }
29}
30
311;