switch day diff calculation to epoch based so that "N hours short of M days" becomes...
[engit/Iron-Munger.git] / lib / IronMunger.pm
CommitLineData
372db818 1use MooseX::Declare;
2
3class 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
421;