X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FCDBICompat%2FGetSet.pm;h=dd621f27da7591287de9f27fd4e26baedd0c452e;hb=8195240c3f2be9f5731a0812f7868cbc23ba83e8;hp=a748c557fd66ba72e1a416b6b297ccc6595a3af4;hpb=fe5d862bdaa631796cb26e5fea232a81458e68f8;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/lib/DBIx/Class/CDBICompat/GetSet.pm b/lib/DBIx/Class/CDBICompat/GetSet.pm index a748c55..dd621f2 100644 --- a/lib/DBIx/Class/CDBICompat/GetSet.pm +++ b/lib/DBIx/Class/CDBICompat/GetSet.pm @@ -1,4 +1,8 @@ -package DBIx::Class::CDBICompat::GetSet; +package # hide from PAUSE + DBIx::Class::CDBICompat::GetSet; + +use strict; +use warnings; #use base qw/Class::Accessor/; @@ -12,7 +16,17 @@ sub get { } sub set { - return shift->set_column(@_); + my($self, %data) = @_; + + # set_columns() is going to do a string comparison before setting. + # This breaks on DateTime objects (whose comparison is arguably broken) + # so we stringify anything first. + for my $key (keys %data) { + next unless ref $data{$key}; + $data{$key} = "$data{$key}"; + } + + return shift->set_columns(\%data); } 1;