summaryrefslogtreecommitdiff
path: root/lib/GridFiller/Scaler.pm
blob: 21d11c96d8416f69efb6fb500f95aff8b59069a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package GridFiller::Scaler; 
use Moose;
use namespace::autoclean;
use GridFiller::Types qw(GridT);
use MooseX::Types::Moose qw(Int);
use Carp;
use MooseX::Params::Validate 'pos_validated_list';
 
sub scale {
    shift# class 
    my ($input_grid,$scale) = pos_validated_list(
        \@_,
        isa => GridT },
        isa => Int },
    );
 
    my @output_grid;
 
    for my $row (@$input_grid) {
        my @out_row;
 
        for my $cell (@$row) {
            push @out_row$cell for 1..$scale;
        }
 
        push @output_grid,[@out_rowfor 1..$scale;
    }
 
    return \@output_grid;
}
 
1;