- Removed 'use warnings' from all tests
Rob Kinyon [Fri, 12 Nov 2004 19:43:26 +0000 (19:43 +0000)]
    - All warnings are suppressed unless $^W is true
    - Added 'height' value for ROW
    - Added 'width' value for CELL
    - Fixed PM_FILTER to work on Redhat

27 files changed:
Changes
MANIFEST
Makefile.PL
lib/Excel/Template.pm
lib/Excel/Template/Container/Conditional.pm
lib/Excel/Template/Container/Row.pm
lib/Excel/Template/Element/Cell.pm
lib/Excel/Template/Factory.pm
lib/Excel/Template/Format.pm
lib/Excel/Template/Iterator.pm
t/001_load.t
t/002_workbook.t
t/003_worksheet.t
t/004_cell.t
t/005_formats.t
t/006_variables.t
t/007_cell_formats.t
t/008_formula.t
t/009.xml
t/009_loop.t
t/010_scope.t
t/011_conditional.t
t/012_backref.t
t/013_range.t
t/014.xml [new file with mode: 0644]
t/014_heightwidth.t [new file with mode: 0644]
t/Spreadsheet/WriteExcel/Worksheet.pm

diff --git a/Changes b/Changes
index 19ad758..672b94b 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,6 +1,13 @@
 Revision history for Perl distribution Excel::Template
 
-0.17 Sat Nov 05 23:30:00 2004
+0.18 Fri Nov 12 14:45:00 2004
+    - Removed 'use warnings' from all tests
+    - All warnings are suppressed unless $^W is true
+    - Added 'height' value for ROW
+    - Added 'width' value for CELL
+    - Fixed PM_FILTER to work on Redhat
+
+0.17 Sat Nov 06 23:30:00 2004
     - Added worksheet protection
     - Fixed several bugs found by adding more tests
         - SCOPE node actually works
index aa2dcad..b6823d4 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -57,6 +57,8 @@ t/012_backref.t
 t/012.xml
 t/013_range.t
 t/013.xml
+t/014_heightwidth.t
+t/014.xml
 t/mock.pm
 t/Spreadsheet/WriteExcel.pm
 t/Spreadsheet/WriteExcel/Worksheet.pm
index 27fe9f8..9ab053d 100644 (file)
@@ -5,8 +5,8 @@ use ExtUtils::MakeMaker;
 use strict;
 
 my $prereqs = {
-    'Test::Simple'            => 0.44,
     'Spreadsheet::WriteExcel' => 0.42,
+    'Test::More'              => 0.01,
     'XML::Parser'             => 0.01,
     'IO::Scalar'              => 0.01,
     'File::Basename'          => 0.01,
@@ -29,8 +29,8 @@ if ($] < 5.008)
 }
 
 my $pm_filter = $use_unicode
-    ? 'perl -p -e "s!UNI_YES ! !g;s!UNI_NO  !\\#!g"'
-    : 'perl -p -e "s!UNI_NO  ! !g;s!UNI_YES !\\#!g"';
+    ? q{perl -pi -e "s!UNI_YES ! !g;s!UNI_NO  !\\#!g"}
+    : q{perl -pi -e "s!UNI_NO  ! !g;s!UNI_YES !\\#!g"};
 
 WriteMakefile(
     NAME         => 'Excel::Template',
index ec6d764..7455fb5 100644 (file)
@@ -6,7 +6,7 @@ BEGIN {
     use Excel::Template::Base;
     use vars qw ($VERSION @ISA);
 
-    $VERSION  = '0.17';
+    $VERSION  = '0.18';
     @ISA      = qw( Excel::Template::Base );
 }
 
@@ -37,7 +37,7 @@ sub new
             $class->import;
         };
         if ($@) {
-            warn "Could not find or compile '$class'\n";
+            warn "Could not find or compile '$class'\n" if $^W;
         } else {
             $self->{RENDERER} = $class;
             last;
index cf4fcb2..1143a2c 100644 (file)
@@ -69,7 +69,7 @@ sub conditional_passes
     else
     {
         warn "Conditional 'is' value was [$is], defaulting to 'FALSE'" . $/
-            if $is ne 'FALSE';
+            if $is ne 'FALSE' && $^W;
 
         return 0 if $istrue;
     }
index fc0323f..f8834d1 100644 (file)
@@ -16,6 +16,20 @@ sub render
 
     $context->{COL} = 0;
 
+    # Apply the height to the current row
+    if (my $height = $context->get($self, 'HEIGHT'))
+    {
+        $height =~ s/\D//g;
+        $height *= 1;
+        if ($height > 0)
+        {
+            $context->active_worksheet->set_row(
+                $context->get( $self, 'ROW' ),
+                $height,
+            );
+        }
+    }
+
     return $self->SUPER::render($context);
 }
 
@@ -47,7 +61,13 @@ Excel::Template::Container
 
 =head1 ATTRIBUTES
 
-None
+=over 4
+
+=item * HEIGHT
+
+Sets the height of the row. The last setting for a given row will win out.
+
+=back 4
 
 =head1 CHILDREN
 
index 9272e51..f14428a 100755 (executable)
@@ -59,6 +59,17 @@ sub render
         $context->add_reference( $ref, $row, $col );
     }
 
+    # Apply the cell width to the current column
+    if (my $width = $context->get($self, 'WIDTH'))
+    {
+        $width =~ s/\D//g;
+        $width *= 1;
+        if ($width > 0)
+        {
+            $context->active_worksheet->set_column($col, $col, $width);
+        }
+    }                                                                         
+
     $context->active_worksheet->$method(
         $row, $col,
         $self->get_text($context),
@@ -115,6 +126,11 @@ Adds the current cell to the a list of cells that can be backreferenced.
 This is useful when the current cell needs to be referenced by a
 formula. See BACKREF and RANGE.
 
+=item * WIDTH
+
+Sets the width of the column the cell is in. The last setting for a given column
+will win out.
+
 =back 4
 
 There will be more parameters added, as features are added.
index c532b67..266adef 100644 (file)
@@ -77,7 +77,7 @@ sub register
     {
         unless ($params{$_})
         {
-            warn "$_ was not supplied to register()\n";
+            warn "$_ was not supplied to register()\n" if $^W;
             return 0;
         }
     }
@@ -85,14 +85,14 @@ sub register
     my $name = uc $params{name};
     if (exists $Manifest{$name})
     {
-        warn "$params{name} already exists in the manifest.\n";
+        warn "$params{name} already exists in the manifest.\n" if $^W;
         return 0;
     }
 
     my $isa = uc $params{isa};
     unless (exists $Manifest{$isa})
     {
-        warn "$params{isa} does not exist in the manifest.\n";
+        warn "$params{isa} does not exist in the manifest.\n" if $^W;
         return 0;
     }
 
index 5beff92..4854eb5 100644 (file)
@@ -115,7 +115,7 @@ use strict;
                 }
             }
 
-            warn "Property '$prop' is unrecognized\n";
+            warn "Property '$prop' is unrecognized\n" if $^W;
         }
 
         my $new_key = _params_to_key(%params);
index ccdc8b1..ee2d75d 100644 (file)
@@ -32,7 +32,7 @@ sub new
     {
         $self->{NO_PARAMS} = 1;
 
-        warn "INTERNAL ERROR: 'NAME' was blank was blank when passed to ", __PACKAGE__, $/;
+        warn "INTERNAL ERROR: 'NAME' was blank was blank when passed to ", __PACKAGE__, $/ if $^W;
 
         return $self;
     }
@@ -43,7 +43,7 @@ sub new
     unless (UNIVERSAL::isa($self->{DATA}, 'ARRAY'))
     {
         $self->{NO_PARAMS} = 1;
-        warn "'$self->{NAME}' does not have a list of parameters", $/;
+        warn "'$self->{NAME}' does not have a list of parameters", $/ if $^W;
 
         return $self;
     }
index 08a9954..0f8bd95 100644 (file)
@@ -1,6 +1,4 @@
 use strict;
-use warnings;
-$|++;
 
 use Test::More tests => 2;
 
index 07730b8..32ad96a 100644 (file)
@@ -1,6 +1,4 @@
 use strict;
-use warnings;
-$|++;
 
 use Test::More tests => 4;
 
index 685c588..8428ee4 100644 (file)
@@ -1,6 +1,4 @@
 use strict;
-use warnings;
-$|++;
 
 use Test::More tests => 4;
 
index 4f9a403..ac696bd 100644 (file)
@@ -1,6 +1,4 @@
 use strict;
-use warnings;
-$|++;
 
 use Test::More tests => 4;
 
index 134b978..8d7b9e0 100644 (file)
@@ -1,6 +1,4 @@
 use strict;
-use warnings;
-$|++;
 
 use Test::More tests => 4;
 
index d6c14c8..f3a498c 100644 (file)
@@ -1,6 +1,4 @@
 use strict;
-use warnings;
-$|++;
 
 use Test::More tests => 5;
 
index ef5e683..7ea983b 100644 (file)
@@ -1,6 +1,4 @@
 use strict;
-use warnings;
-$|++;
 
 use Test::More tests => 4;
 
index 2bf75fd..6ff878f 100644 (file)
@@ -1,6 +1,4 @@
 use strict;
-use warnings;
-$|++;
 
 use Test::More tests => 4;
 
index e36b384..7880fa8 100644 (file)
--- a/t/009.xml
+++ b/t/009.xml
       </row>
     </loop>
 
+    <loop name="no_iters">
+      <cell text="$value" />
+    </loop>
+
+    <loop name="no_params">
+      <cell text="$value" />
+    </loop>
+
+    <loop name="empty" />
+
+    <loop name="" />
+
   </worksheet>
 
   <loop name="worksheets">
index 2f8f6dd..5e9384f 100644 (file)
@@ -1,6 +1,5 @@
+BEGIN{ $^W = 0 }
 use strict;
-use warnings;
-$|++;
 
 use Test::More tests => 5;
 
@@ -32,6 +31,8 @@ ok(
             { value => 2 },
             { value => 3 },
         ],
+        no_iters => [
+        ],
     ),
     'Parameters set',
 );
index ac1aaea..99cd23a 100644 (file)
@@ -1,6 +1,4 @@
 use strict;
-use warnings;
-$|++;
 
 use Test::More tests => 4;
 
index 45bcb72..d4ca064 100644 (file)
@@ -1,6 +1,4 @@
 use strict;
-use warnings;
-$|++;
 
 use Test::More tests => 5;
 
index 25301ec..831b344 100644 (file)
@@ -1,6 +1,4 @@
 use strict;
-use warnings;
-$|++;
 
 use Test::More tests => 4;
 
index c865c63..38fd676 100644 (file)
@@ -1,6 +1,4 @@
 use strict;
-use warnings;
-$|++;
 
 use Test::More tests => 4;
 
diff --git a/t/014.xml b/t/014.xml
new file mode 100644 (file)
index 0000000..82eeb54
--- /dev/null
+++ b/t/014.xml
@@ -0,0 +1,7 @@
+<workbook>
+  <worksheet name="heightwidth">
+    <row height="30">
+      <cell width="10" text="1" />
+    </row>
+  </worksheet>
+</workbook>
diff --git a/t/014_heightwidth.t b/t/014_heightwidth.t
new file mode 100644 (file)
index 0000000..502a2c2
--- /dev/null
@@ -0,0 +1,29 @@
+use strict;
+
+use Test::More tests => 4;
+
+use lib 't';
+use mock;
+mock->reset;
+
+my $CLASS = 'Excel::Template';
+use_ok( $CLASS );
+
+my $object = $CLASS->new(
+    filename => 't/014.xml',
+);
+isa_ok( $object, $CLASS );
+
+ok( $object->write_file( 'filename' ), 'Something returned' );
+
+my @calls = mock->get_calls;
+is( join( $/, @calls, '' ), <<__END_EXPECTED__, 'Calls match up' );
+Spreadsheet::WriteExcel::new( 'filename' )
+Spreadsheet::WriteExcel::add_format( '' )
+Spreadsheet::WriteExcel::add_worksheet( 'heightwidth' )
+Spreadsheet::WriteExcel::Worksheet::new( '' )
+Spreadsheet::WriteExcel::Worksheet::set_row( '0', '30' )
+Spreadsheet::WriteExcel::Worksheet::set_column( '0', '0', '10' )
+Spreadsheet::WriteExcel::Worksheet::write( '0', '0', '1', '1' )
+Spreadsheet::WriteExcel::close( '' )
+__END_EXPECTED__
index 16f3be1..a269214 100644 (file)
@@ -34,5 +34,23 @@ sub write {
     }
 }
 
+sub set_row {
+    my $self = shift;
+
+    {
+        local $" = "', '";
+        push @mock::calls, __PACKAGE__ . "::set_row( '@_' )";
+    }
+}
+
+sub set_column {
+    my $self = shift;
+
+    {
+        local $" = "', '";
+        push @mock::calls, __PACKAGE__ . "::set_column( '@_' )";
+    }
+}
+
 1;
 __END__