5.8.1 is minimum required perl
Peter Rabbitson [Thu, 7 Jan 2010 10:21:55 +0000 (10:21 +0000)]
Changes
Makefile.PL
lib/DBIx/Class/UTF8Columns.pm
t/51threads.t
t/51threadtxn.t
t/85utf8.t

diff --git a/Changes b/Changes
index cdebd93..24e4967 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,6 @@
 Revision history for DBIx::Class
 
+        - Perl 5.8.1 is now the minimum supported version
         - might_have/has_one now warn if applied calling class's column
           has is_nullable set to true.
         - Fixed regression in deploy() with a {sources} table limit applied
index 90003a5..f96742b 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 use warnings;
 use POSIX ();
 
-use 5.006001; # delete this line if you want to send patches for earlier.
+use 5.008001;
 
 # ****** DO NOT ADD OPTIONAL DEPENDENCIES. EVER. --mst ******
 
@@ -33,7 +33,7 @@ requires 'Class::C3::Componentised' => '1.0005';
 requires 'Class::Inspector'         => '1.24';
 requires 'Data::Page'               => '2.00';
 requires 'DBD::SQLite'              => '1.25';
-requires 'DBI'                      => '1.605';
+requires 'DBI'                      => '1.609';
 requires 'JSON::Any'                => '1.18';
 requires 'MRO::Compat'              => '0.09';
 requires 'Module::Find'             => '0.06';
index b40f676..7977e63 100644 (file)
@@ -2,17 +2,7 @@ package DBIx::Class::UTF8Columns;
 use strict;
 use warnings;
 use base qw/DBIx::Class/;
-
-BEGIN {
-
-    # Perl 5.8.0 doesn't have utf8::is_utf8()
-    # Yes, 5.8.0 support for Unicode is suboptimal, but things like RHEL3 ship with it.
-    if ($] <= 5.008000) {
-        require Encode;
-    } else {
-        require utf8;
-    }
-}
+use utf8;
 
 __PACKAGE__->mk_classdata( '_utf8_columns' );
 
@@ -71,15 +61,10 @@ sub get_column {
 
     my $cols = $self->_utf8_columns;
     if ( $cols and defined $value and $cols->{$column} ) {
-
-        if ($] <= 5.008000) {
-            Encode::_utf8_on($value) unless Encode::is_utf8($value);
-        } else {
-            utf8::decode($value) unless utf8::is_utf8($value);
-        }
+      utf8::decode($value) unless utf8::is_utf8($value);
     }
 
-    $value;
+    return $value;
 }
 
 =head2 get_columns
@@ -91,15 +76,10 @@ sub get_columns {
     my %data = $self->next::method(@_);
 
     foreach my $col (grep { defined $data{$_} } keys %{ $self->_utf8_columns || {} }) {
-
-        if ($] <= 5.008000) {
-            Encode::_utf8_on($data{$col}) unless Encode::is_utf8($data{$col});
-        } else {
-            utf8::decode($data{$col}) unless utf8::is_utf8($data{$col});
-        }
+      utf8::decode($data{$col}) unless utf8::is_utf8($data{$col});
     }
 
-    %data;
+    return %data;
 }
 
 =head2 store_column
@@ -111,12 +91,7 @@ sub store_column {
 
     my $cols = $self->_utf8_columns;
     if ( $cols and defined $value and $cols->{$column} ) {
-
-        if ($] <= 5.008000) {
-            Encode::_utf8_off($value) if Encode::is_utf8($value);
-        } else {
-            utf8::encode($value) if utf8::is_utf8($value);
-        }
+      utf8::encode($value) if utf8::is_utf8($value);
     }
 
     $self->next::method( $column, $value );
index a7a3a78..4cb7bec 100644 (file)
@@ -8,7 +8,7 @@ use Config;
 
 BEGIN {
     plan skip_all => 'Your perl does not support ithreads'
-        if !$Config{useithreads} || $] < 5.008;
+        if !$Config{useithreads};
 }
 
 use threads;
index 3cc6779..eb3ee6a 100644 (file)
@@ -8,7 +8,7 @@ use Config;
 
 BEGIN {
     plan skip_all => 'Your perl does not support ithreads'
-        if !$Config{useithreads} || $] < 5.008;
+        if !$Config{useithreads};
 }
 
 use threads;
index b9993a1..2a89fa6 100644 (file)
@@ -1,23 +1,13 @@
 use strict;
-use warnings;  
+use warnings;
 
 use Test::More;
 use lib qw(t/lib);
 use DBICTest;
+use utf8;
 
 my $schema = DBICTest->init_schema();
 
-if ($] <= 5.008000) {
-
-    eval 'use Encode; 1' or plan skip_all => 'Need Encode run this test';
-
-} else {
-
-    eval 'use utf8; 1' or plan skip_all => 'Need utf8 run this test';
-}
-
-plan tests => 6;
-
 DBICTest::Schema::CD->load_components('UTF8Columns');
 DBICTest::Schema::CD->utf8_columns('title');
 Class::C3->reinitialize();
@@ -26,12 +16,12 @@ my $cd = $schema->resultset('CD')->create( { artist => 1, title => 'øni', year
 my $utf8_char = 'uniuni';
 
 
-ok( _is_utf8( $cd->title ), 'got title with utf8 flag' );
-ok(! _is_utf8( $cd->year ), 'got year without utf8 flag' );
+ok( utf8::is_utf8( $cd->title ), 'got title with utf8 flag' );
+ok(! utf8::is_utf8( $cd->year ), 'got year without utf8 flag' );
 
-_force_utf8($utf8_char);
+utf8::decode($utf8_char);
 $cd->title($utf8_char);
-ok(! _is_utf8( $cd->{_column_data}{title} ), 'store utf8-less chars' );
+ok(! utf8::is_utf8( $cd->{_column_data}{title} ), 'store utf8-less chars' );
 
 
 my $v_utf8 = "\x{219}";
@@ -47,24 +37,7 @@ ok( $cd->is_column_changed('title'), 'column is dirty after setting to something
 TODO: {
   local $TODO = 'There is currently no way to propagate aliases to inflate_result()';
   $cd = $schema->resultset('CD')->find ({ title => $v_utf8 }, { select => 'title', as => 'name' });
-  ok (_is_utf8( $cd->get_column ('name') ), 'utf8 flag propagates via as');
+  ok (utf8::is_utf8( $cd->get_column ('name') ), 'utf8 flag propagates via as');
 }
 
-
-sub _force_utf8 {
-  if ($] <= 5.008000) {
-    Encode::_utf8_on ($_[0]);
-  }
-  else {
-    utf8::decode ($_[0]);
-  }
-}
-
-sub _is_utf8 {
-  if ($] <= 5.008000) {
-    return Encode::is_utf8 (shift);
-  }
-  else {
-    return utf8::is_utf8 (shift);
-  }
-}
+done_testing;