[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