Commit | Line | Data |
372db818 |
1 | use MooseX::Declare; |
2 | |
3 | class IronMunger { |
4 | |
5 | our $VERSION = '0.001000'; |
6 | |
372db818 |
7 | use aliased 'IronMunger::PlaggerLoader'; |
8 | use aliased 'IronMunger::StatsSaver'; |
4142f6a9 |
9 | use aliased 'IronMunger::Monger'; |
372db818 |
10 | |
11 | use MooseX::Types::Moose qw(HashRef ClassName Str); |
12 | |
13 | has mongers => ( |
c4afd532 |
14 | is => 'ro', isa => HashRef[Monger], required => 1, |
372db818 |
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} |
4142f6a9 |
22 | = $_ for $loader->mongers; |
23 | return $munger; |
372db818 |
24 | } |
25 | |
c5a24bc1 |
26 | method debug_dump () { |
27 | join("\n", map { |
28 | "Monger: ".$_->full_name."\n" |
29 | .$_->debug_dump |
30 | } map $self->mongers->{$_}, sort keys %{$self->mongers}); |
31 | } |
32 | |
372db818 |
33 | method save_monger_stats (Str $dir) { |
34 | my $saver = StatsSaver->new(dir => $dir); |
4142f6a9 |
35 | $saver->mongers([ |
36 | sort { $a->full_name cmp $b->full_name } |
37 | values %{$self->mongers} |
38 | ]); |
372db818 |
39 | } |
40 | } |
41 | |
42 | 1; |