minor fixage
[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   use namespace::autoclean;
14
15   has mongers => (
16     is => 'ro', isa => HashRef[Monger], required => 1,
17     default => sub { {} },
18   );
19
20   method load_from_plagger (ClassName $class: Str $dir) {
21     my $loader = PlaggerLoader->new(dir => $dir);
22     my $munger = $class->new;
23     $munger->mongers->{$_->full_name}
24       = $_ for @{$loader->mongers};
25   }
26
27   method save_monger_stats (Str $dir) {
28     my $saver = StatsSaver->new(dir => $dir);
29     $saver->mongers([ sort $_->full_name, values %{$self->mongers} ]);
30   }
31 }
32
33 1;