Commit | Line | Data |
372db818 |
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; |