[Jifty-commit] r4438 - in Jifty-DBI/trunk: lib/Jifty/DBI lib/Jifty/DBI/Filter

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Thu Nov 15 15:17:48 EST 2007


Author: alexmv
Date: Thu Nov 15 15:17:45 2007
New Revision: 4438

Modified:
   Jifty-DBI/trunk/   (props changed)
   Jifty-DBI/trunk/lib/Jifty/DBI/Filter/DateTime.pm
   Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm

Log:
 r24783 at zoq-fot-pik:  chmrr | 2007-11-15 15:16:29 -0500
  * The formatter can't be decided at compile time, because subclasses
    may override the format.  Hence, make it once and cache it.
  * Note for posterity why we can't apply acl checks to refers_to columns


Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Filter/DateTime.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Filter/DateTime.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Filter/DateTime.pm	Thu Nov 15 15:17:45 2007
@@ -3,7 +3,7 @@
 use warnings;
 use strict;
 
-use base qw|Jifty::DBI::Filter|;
+use base qw|Jifty::DBI::Filter Class::Data::Inheritable|;
 use DateTime                  ();
 use DateTime::Format::ISO8601 ();
 use DateTime::Format::Strptime ();
@@ -12,7 +12,15 @@
 use constant _time_zone => 'UTC';
 use constant _strptime  => '%Y-%m-%d %H:%M:%S';
 use constant _parser    => DateTime::Format::ISO8601->new();
-use constant _formatter => DateTime::Format::Strptime->new(pattern => _strptime);
+
+__PACKAGE__->mk_classdata("_formatter");
+sub formatter {
+    my $self = shift;
+    unless ($self->_formatter) {
+         $self->_formatter(DateTime::Format::Strptime->new(pattern => $self->_strptime));
+    }
+    return $self->_formatter;
+}
 
 =head1 NAME
 
@@ -93,7 +101,7 @@
 	my $tz = $self->_time_zone;
 	$dt->set_time_zone($tz) if $tz;
 
-        $dt->set_formatter($self->_formatter);
+        $dt->set_formatter($self->formatter);
         $$value_ref = $dt;
     } else {
         return;

Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm	Thu Nov 15 15:17:45 2007
@@ -283,6 +283,12 @@
                             Carp::carp
                                 "Value passed to column accessor.  You probably want to use the mutator.";
                         }
+                        # This should be using _value, so we acl_check
+                        # appropriately, except the acl checks often
+                        # involve object references.  So even if you
+                        # don't have rights to $object->foo_id,
+                        # $object->foo->id will always have to
+                        # work. :/
                         $_[0]->_to_record( $column_name,
                             $_[0]->__value($column_name) );
                     };


More information about the Jifty-commit mailing list