summaryrefslogtreecommitdiff
path: root/lib/GridFiller/Scaler.pm
blob: f6e333777ba37275729efd1e18923ed12b56fa56 (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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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;
 
__END__
 
=head1 AUTHOR
 
Gianni Ceccarelli <dakkar@thenautilus.net>
 
=head1 COPYRIGHT AND LICENSE
 
This software is copyright (c) 2012 by Gianni Ceccarelli.
 
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, version 3.
 
=cut