first sketch of load/save processing functionality
[engit/Iron-Munger.git] / lib / IronMunger.pm
1 use MooseX::Declare;
2
3 class 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
31 1;