Fix update() so it throws out inflated values, too
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / CDBICompat / GetSet.pm
index a748c55..a11baeb 100644 (file)
@@ -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,13 @@ 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.
+  $data{$_} = "$data{$_}" for keys %data;
+  return shift->set_columns(\%data);
 }
 
 1;