X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FApp-IdiotBox.git;a=blobdiff_plain;f=t%2Flib%2FData%2FPerl%2FStream%2FArray.pm;fp=t%2Flib%2FData%2FPerl%2FStream%2FArray.pm;h=cb0ccf52dad2858ce0b0a03b7b3b4de2f2dd49a4;hp=0000000000000000000000000000000000000000;hb=6b6ce2e092408b58ffe70eafa49265b0c532be62;hpb=ce2b1e73fc200bc54032b33af7487534d6608ca4 diff --git a/t/lib/Data/Perl/Stream/Array.pm b/t/lib/Data/Perl/Stream/Array.pm new file mode 100644 index 0000000..cb0ccf5 --- /dev/null +++ b/t/lib/Data/Perl/Stream/Array.pm @@ -0,0 +1,22 @@ +package Data::Perl::Stream::Array; + +use Moose; +use Method::Signatures::Simple; + +has _array => (is => 'rw', required => 1, init_arg => 'array'); + +method BUILD { $self->_array([ @{$self->_array} ]) } + +method next { + my $ary = $self->_array; + return unless @$ary; + return shift @$ary; +} + +method map ($map_func) { + ref($self)->new(array => [ map { $map_func->($_) } @{$self->_array} ]); +} + +__PACKAGE__->meta->make_immutable; + +1;