[Jifty-commit] r3938 - in jifty/trunk: lib/Jifty t
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Wed Aug 22 11:56:46 EDT 2007
Author: sartak
Date: Wed Aug 22 11:56:46 2007
New Revision: 3938
Modified:
jifty/trunk/ (props changed)
jifty/trunk/lib/Jifty/DateTime.pm
jifty/trunk/t/DateTime.t
Log:
r30488 at caladan: sartak | 2007-08-22 11:55:55 -0400
Add friendly_date method to Jifty::DateTime which special-cases yesterday/today/tomorrow
Modified: jifty/trunk/lib/Jifty/DateTime.pm
==============================================================================
--- jifty/trunk/lib/Jifty/DateTime.pm (original)
+++ jifty/trunk/lib/Jifty/DateTime.pm Wed Aug 22 11:56:46 2007
@@ -105,4 +105,34 @@
return $self;
}
+=head2 friendly_date
+
+Returns the date given by this C<Jifty::DateTime> object. It will display "today"
+for today, "tomorrow" for tomorrow, or "yesterday" for yesterday. Any other date
+will be displayed in ymd format.
+
+=cut
+
+sub friendly_date {
+ my $self = shift;
+ my $ymd = $self->ymd;
+
+ my $rel = DateTime->now(time_zone => $self->time_zone);
+ if ($ymd eq $rel->ymd) {
+ return "today";
+ }
+
+ $rel->subtract(days => 1);
+ if ($ymd eq $rel->ymd) {
+ return "yesterday";
+ }
+
+ $rel->add(days => 2);
+ if ($ymd eq $rel->ymd) {
+ return "tomorrow";
+ }
+
+ return $ymd;
+}
+
1;
Modified: jifty/trunk/t/DateTime.t
==============================================================================
--- jifty/trunk/t/DateTime.t (original)
+++ jifty/trunk/t/DateTime.t Wed Aug 22 11:56:46 2007
@@ -1,9 +1,27 @@
#!/usr/bin/perl -w
-use Jifty::Test tests => 2;
+use Jifty::Test tests => 8;
use_ok 'Jifty::DateTime';
my $date = Jifty::DateTime->new_from_string("2006-05-03 01:23:45");
my $date_clone = $date->clone();
is $date, $date_clone;
+
+is $date->friendly_date, '2006-05-03';
+
+$date = Jifty::DateTime->now;
+is $date->friendly_date, 'today';
+
+$date = Jifty::DateTime->now->subtract(days => 1);
+is $date->friendly_date, 'yesterday';
+
+$date = Jifty::DateTime->now->subtract(days => 2);
+like $date->friendly_date, qr/^\d\d\d\d-\d\d-\d\d$/;
+
+$date = Jifty::DateTime->now->add(days => 1);
+is $date->friendly_date, 'tomorrow';
+
+$date = Jifty::DateTime->now->add(days => 2);
+like $date->friendly_date, qr/^\d\d\d\d-\d\d-\d\d$/;
+
More information about the Jifty-commit
mailing list