start of stats saver code
[engit/Iron-Munger.git] / lib / IronMunger / StatsSaver.pm
CommitLineData
13a79a43 1use MooseX::Declare;
2
3class IronMunger::StatsSaver {
4
5 use MooseX::Types::Path::Class qw(Dir);
6
7 has dir => (is => 'ro', isa => Dir, required => 1, coerce => 1);
8
9 method _image_symlink_target (Str $type, Str $level) {
10 $self->dir->subdir('badges')->subdir($type)->file("${level}.png");
11 }
12
13 method _image_symlink_from (Str $user, Str $type) {
14 $self->dir->subdir('mybadge')->subdir($type)->file("${user}.png");
15 }
16
17 method _write_image_symlink (Str $user, Str $type, Str $level) {
18 my ($from, $target) = (
19 $self->_image_symlink_from($user, $type),
20 $self->_image_symlink_target($type, $level),
21 );
22 symlink($target, $from)
23 or confess "Couldn't symlink ${from} to ${target}: $!";
24 return;
25 }
26}
27
281;