start of SubList filter code
[scpubgit/SCS.git] / lib / SCSite / LatestPageSet.pm
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;