Commit | Line | Data |
65b76960 |
1 | package Data::Perl::Stream::Array; |
2 | |
3 | use Moose; |
4 | use Method::Signatures::Simple; |
5 | |
6 | has _array => (is => 'rw', required => 1, init_arg => 'array'); |
7 | |
8 | method BUILD { $self->_array([ @{$self->_array} ]) } |
9 | |
65b76960 |
10 | method next { |
11 | my $ary = $self->_array; |
12 | return unless @$ary; |
13 | return shift @$ary; |
14 | } |
15 | |
9e6828e2 |
16 | method map ($map_func) { |
17 | ref($self)->new(array => [ map { $map_func->($_) } @{$self->_array} ]); |
18 | } |
19 | |
4b4cd5bd |
20 | __PACKAGE__->meta->make_immutable; |
21 | |
65b76960 |
22 | 1; |