[Jifty-commit] r887 - in Jifty-DBI/trunk: lib/Jifty/DBI/Filter t
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Fri Apr 21 13:22:08 EDT 2006
Author: alexmv
Date: Fri Apr 21 13:22:07 2006
New Revision: 887
Modified:
Jifty-DBI/trunk/ (props changed)
Jifty-DBI/trunk/Makefile.PL
Jifty-DBI/trunk/lib/Jifty/DBI/Filter/DateTime.pm
Jifty-DBI/trunk/t/06filter_datetime.t
Log:
r12469 at zoq-fot-pik: chmrr | 2006-04-21 13:21:46 -0400
* Sort dependencies in Makefile.PL
* Add 'date' test, and make it work
* Slightly more hygenic rewriting of datetimes
Modified: Jifty-DBI/trunk/Makefile.PL
==============================================================================
--- Jifty-DBI/trunk/Makefile.PL (original)
+++ Jifty-DBI/trunk/Makefile.PL Fri Apr 21 13:22:07 2006
@@ -3,20 +3,20 @@
name ('Jifty-DBI');
license ('perl');
version_from('lib/Jifty/DBI.pm');
-requires('DBI');
-requires('Encode' => 2.10);
-requires('Exporter::Lite');
-requires('UNIVERSAL::require');
-requires('Lingua::EN::Inflect');
-requires('Class::ReturnValue', 0.40);
-requires('Class::Data::Inheritable');
+requires('Cache::Simple::TimedExpiry' => '0.21');
requires('Class::Accessor' => 0);
+requires('Class::Data::Inheritable');
+requires('Class::ReturnValue', 0.40);
requires('Clone');
-requires('Cache::Simple::TimedExpiry' => '0.21');
+requires('DBI');
+requires('DBIx::DBSchema' => '0.28');
requires('Data::Page');
requires('DateTime');
-requires('DateTime::Format::Strptime');
-requires('DBIx::DBSchema' => '0.28');
+requires('DateTime::Format::ISO8601');
+requires('Encode' => 2.10);
+requires('Exporter::Lite');
+requires('Lingua::EN::Inflect');
+requires('UNIVERSAL::require');
build_requires('Test::More' => 0.52);
build_requires('DBD::SQLite');
no_index directory => 'ex';
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 Fri Apr 21 13:22:07 2006
@@ -32,7 +32,8 @@
return unless UNIVERSAL::isa( $$value_ref, 'DateTime' );
- $$value_ref = $$value_ref->strftime("%Y-%m-%d %H:%M:%S");
+ my $format = ($self->column->type eq "date" ? "%Y-%m-%d" : "%Y-%m-%d %H:%M:%S");
+ $$value_ref = $$value_ref->strftime($format);
return 1;
}
@@ -57,9 +58,7 @@
# other DBs may have own formats(Interbase for example can be forced to use special format)
# but we need Jifty::DBI::Handle here to get DB type
- my $str = $$value_ref;
- $str =~ s/ /T/;
-
+ my $str = join('T', split ' ', $$value_ref, 2);
my $dt = DateTime::Format::ISO8601->parse_datetime($str);
if ($dt) {
$$value_ref = $dt;
Modified: Jifty-DBI/trunk/t/06filter_datetime.t
==============================================================================
--- Jifty-DBI/trunk/t/06filter_datetime.t (original)
+++ Jifty-DBI/trunk/t/06filter_datetime.t Fri Apr 21 13:22:07 2006
@@ -34,13 +34,16 @@
isa_ok($rec, 'Jifty::DBI::Record');
my $now = time;
+ my $today = DateTime->from_epoch( epoch => $now )->truncate( to => 'day' )->epoch;
my $dt = DateTime->from_epoch( epoch => $now );
- my($id) = $rec->create( created => $dt );
+ my($id) = $rec->create( created => $dt, event_on => $dt );
ok($id, "Successfuly created ticket");
ok($rec->load($id), "Loaded the record");
is($rec->id, $id, "The record has its id");
isa_ok($rec->created, 'DateTime' );
is( $rec->created->epoch, $now, "Correct value");
+ isa_ok($rec->event_on, 'DateTime' );
+ is( $rec->event_on->epoch, $today, "Correct value");
# undef/NULL
$rec->set_created;
@@ -67,7 +70,8 @@
<<EOF;
CREATE table users (
id integer primary key,
- created datetime
+ created datetime,
+ event_on date
)
EOF
@@ -78,7 +82,8 @@
<<EOF;
CREATE TEMPORARY table users (
id integer auto_increment primary key,
- created datetime
+ created datetime,
+ event_on date
)
EOF
@@ -89,7 +94,8 @@
<<EOF;
CREATE TEMPORARY table users (
id serial primary key,
- created timestamp
+ created timestamp,
+ event_on date
)
EOF
@@ -102,6 +108,10 @@
column created =>
type is 'datetime',
input_filters are qw/Jifty::DBI::Filter::DateTime/;
+
+ column event_on =>
+ type is 'date',
+ input_filters are qw/Jifty::DBI::Filter::DateTime/;
}
1;
More information about the Jifty-commit
mailing list