switch day diff calculation to epoch based so that "N hours short of M days" becomes...
[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::PlaggerLoader';
8   use aliased 'IronMunger::StatsSaver';
9   use aliased 'IronMunger::Monger';
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     return $munger;
24   }
25
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
33   method save_monger_stats (Str $dir) {
34     my $saver = StatsSaver->new(dir => $dir);
35     $saver->mongers([
36       sort { $a->full_name cmp $b->full_name }
37         values %{$self->mongers}
38     ]);
39   }
40 }
41
42 1;