Commit | Line | Data |
13a79a43 |
1 | use MooseX::Declare; |
2 | |
3 | class 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 | |
28 | 1; |