From: Rob Kinyon Date: Wed, 27 Oct 2004 17:36:39 +0000 (+0000) Subject: - Converted to use Unicode logic from PDF::Template X-Git-Tag: v0.13~3 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=a8441e01145a643b71fb562b00a0b02cf82eb61c;p=p5sagit%2FExcel-Template.git - Converted to use Unicode logic from PDF::Template - Added mailing list and new email address to POD --- diff --git a/Makefile.PL b/Makefile.PL index 89504ef..6fdd34a 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,16 +1,83 @@ use ExtUtils::MakeMaker; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. + +use File::Spec; + +my $prereqs = { + 'Test::Simple' => 0.44, + 'XML::Parser' => 0.01, + 'IO::File' => 0.01, + 'File::Basename' => 0.01, + 'Spreadsheet::WriteExcel' => 0.42, +}; + +# The assumption is the 5.8.0 and greater doesn't need Unicode::String. +if ($] < 5.008) +{ + print "Do you want Unicode support? "; + my $answer = ; + my $need_unicode = $answer =~ /^[Yy]/; + + my $use_unicode = 0; + if ($need_unicode) + { + $prereqs{'Unicode::String'} = '0.01'; + $use_unicode = 1; + } +} + +use_unicode($use_unicode); + WriteMakefile( NAME => 'Excel::Template', VERSION_FROM => 'lib/Excel/Template.pm', # finds $VERSION - AUTHOR => 'Rob Kinyon (rkinyon@columbus.rr.com', + AUTHOR => 'Rob Kinyon (rob.kinyon@gmail.com)', ABSTRACT => 'Excel::Template', - PREREQ_PM => { - 'Test::Simple' => 0.44, - 'Spreadsheet::WriteExcel' => 0.42, - 'XML::Parser' => 0.01, - 'IO::Scalar' => 0.01, - 'IO::File' => 0.01, - }, + PREREQ_PM => $prereqs, ); + +sub use_unicode +{ + my $using_unicode = shift; + + my @filenames = map { + File::Spec->catfile( + qw( lib Excel Template ), + @{$_}, + ) + } ( [ qw( Element Cell.pm_ ) ], [ qw( TextObject.pm_ ) ] ); + + foreach my $filename (@filenames) + { + open(IN_FILE, $filename) + or die "Cannot open '$filename' for reading: $!\n"; + my @lines = ; + close(IN_FILE); + + if ($using_unicode) + { + for (@lines) + { + s/^UNI_YES / /; + s/^UNI_NO /#/; + } + } + else + { + for (@lines) + { + s/^UNI_YES /#/; + s/^UNI_NO / /; + } + } + + $filename =~ s/_$//; + open(OUT_FILE, ">$filename") + or die "Cannot open '$filename' for writing: $!\n"; + print OUT_FILE @lines; + close(OUT_FILE); + } + + return 1; +} diff --git a/lib/Excel/Template.pm b/lib/Excel/Template.pm index 665405b..b5780af 100644 --- a/lib/Excel/Template.pm +++ b/lib/Excel/Template.pm @@ -341,7 +341,11 @@ but I expect to be adding on to it very soon. =head1 AUTHOR Rob Kinyon - rkinyon@columbus.rr.com + rob.kinyon@gmail.com + +=head1 CONTRIBUTORS + +There is a mailing list at http://groups-beta.google.com/group/ExcelTemplate =head1 COPYRIGHT diff --git a/lib/Excel/Template/Element/Cell.pm b/lib/Excel/Template/Element/Cell.pm_ old mode 100644 new mode 100755 similarity index 97% rename from lib/Excel/Template/Element/Cell.pm rename to lib/Excel/Template/Element/Cell.pm_ index 88a0140..6db119c --- a/lib/Excel/Template/Element/Cell.pm +++ b/lib/Excel/Template/Element/Cell.pm_ @@ -37,8 +37,8 @@ sub get_text } else { -# $txt = Unicode::String::utf8(''); - $txt = ''; +UNI_YES $txt = Unicode::String::utf8(''); +UNI_NO $txt = ''; } return $txt; diff --git a/lib/Excel/Template/TextObject.pm b/lib/Excel/Template/TextObject.pm_ old mode 100644 new mode 100755 similarity index 85% rename from lib/Excel/Template/TextObject.pm rename to lib/Excel/Template/TextObject.pm_ index ac7a3d7..3597af5 --- a/lib/Excel/Template/TextObject.pm +++ b/lib/Excel/Template/TextObject.pm_ @@ -8,7 +8,7 @@ BEGIN { use Excel::Template::Base; -# use Unicode::String; +UNI_YES use Unicode::String; } # This is a helper object. It is not instantiated by the user, @@ -31,8 +31,8 @@ sub resolve my $self = shift; my ($context) = @_; -# my $t = Unicode::String::utf8(''); - my $t = ''; +UNI_YES my $t = Unicode::String::utf8(''); +UNI_NO my $t = ''; for my $tok (@{$self->{STACK}}) { @@ -40,8 +40,8 @@ sub resolve $val = $val->resolve($context) if Excel::Template::Factory::isa($val, 'VAR'); -# $t .= Unicode::String::utf8("$val"); - $t .= $val; +UNI_YES $t .= Unicode::String::utf8("$val"); +UNI_NO $t .= $val; } return $t;