Commit | Line | Data |
ebd4c292 |
1 | package SCSite::LatestPageSet; |
2 | |
3 | use Moo; |
4 | |
5 | has _parent => (is => 'ro', required => 1, init_arg => 'parent'); |
6 | has _max_entries => (is => 'ro', required => 1, init_arg => 'max_entries'); |
7 | |
8 | sub flatten { |
9 | my ($self) = @_; |
10 | my @sorted = sort { |
11 | $a->created cmp $b->created |
12 | } $self->_parent->flatten; |
13 | $self->_max_entries ? @sorted[0..$self->_max_entries-1] : @sorted; |
14 | } |
15 | |
16 | sub map { |
17 | my ($self, $mapper) = @_; |
18 | [ map $mapper->($_), $self->flatten ] |
19 | } |
20 | |
21 | 1; |