[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