summaryrefslogtreecommitdiff
path: root/lib/GridFiller/Scaler.pm
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2010-11-25 22:45:20 +0000
committerdakkar <dakkar@thenautilus.net>2010-11-25 22:45:20 +0000
commit257d5834801afe7d9ddffa81f78d6b7f8d08822a (patch)
treee62760f971bd71d67fb130637f35c00971b76896 /lib/GridFiller/Scaler.pm
parentsmarter chooser (diff)
downloadqr-builder-257d5834801afe7d9ddffa81f78d6b7f8d08822a.tar.gz
qr-builder-257d5834801afe7d9ddffa81f78d6b7f8d08822a.tar.bz2
qr-builder-257d5834801afe7d9ddffa81f78d6b7f8d08822a.zip
scaler, and __DATA__
also, better validation
Diffstat (limited to 'lib/GridFiller/Scaler.pm')
-rw-r--r--lib/GridFiller/Scaler.pm32
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/GridFiller/Scaler.pm b/lib/GridFiller/Scaler.pm
new file mode 100644
index 0000000..21d11c9
--- /dev/null
+++ b/lib/GridFiller/Scaler.pm
@@ -0,0 +1,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_row] for 1..$scale;
+ }
+
+ return \@output_grid;
+}
+
+1;