Stop double-caching datetime_parser - keep it in the storage only
Peter Rabbitson [Fri, 4 Sep 2009 19:32:01 +0000 (19:32 +0000)]
lib/DBIx/Class/InflateColumn/DateTime.pm
lib/DBIx/Class/Serialize/Storable.pm

index 35aa3e6..2b40608 100644 (file)
@@ -86,8 +86,6 @@ For more help with using components, see L<DBIx::Class::Manual::Component/USING>
 
 __PACKAGE__->load_components(qw/InflateColumn/);
 
-__PACKAGE__->mk_group_accessors('simple' => '__datetime_parser');
-
 =head2 register_column
 
 Chains with the L<DBIx::Class::Row/register_column> method, and sets
@@ -224,12 +222,7 @@ sub _deflate_from_datetime {
 }
 
 sub _datetime_parser {
-  my $self = shift;
-  if (my $parser = $self->__datetime_parser) {
-    return $parser;
-  }
-  my $parser = $self->result_source->storage->datetime_parser(@_);
-  return $self->__datetime_parser($parser);
+  shift->result_source->storage->datetime_parser (@_);
 }
 
 1;
index d165862..7cc1218 100644 (file)
@@ -11,11 +11,6 @@ sub STORABLE_freeze {
     # reattached in the thaw handler below
     delete $to_serialize->{result_source};
 
-    # If the parser is cached there is a chance that the interpeter
-    # which receives the ice will not have the parser loaded
-    # A re-determination will force an implicit load
-    delete $to_serialize->{__datetime_parser};
-
     # Dynamic values, easy to recalculate
     delete $to_serialize->{$_} for qw/related_resultsets _inflated_column/;