aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2017-10-20 17:46:28 +0100
committerdakkar <dakkar@thenautilus.net>2017-10-20 17:46:28 +0100
commitea6c0c8b7a09c2ffb0fb863d90f26d472e67f2a4 (patch)
treef79ae74e8c816b5a662d9644e21ec9a3dbcae75a /lib
parentexpose dates to TT (diff)
downloadWebCoso-ea6c0c8b7a09c2ffb0fb863d90f26d472e67f2a4.tar.gz
WebCoso-ea6c0c8b7a09c2ffb0fb863d90f26d472e67f2a4.tar.bz2
WebCoso-ea6c0c8b7a09c2ffb0fb863d90f26d472e67f2a4.zip
include patched Template::Plugin::DateTime::Format
Diffstat (limited to 'lib')
-rw-r--r--lib/Template/Plugin/DateTimeFormat.pm38
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/Template/Plugin/DateTimeFormat.pm b/lib/Template/Plugin/DateTimeFormat.pm
new file mode 100644
index 0000000..8c6d592
--- /dev/null
+++ b/lib/Template/Plugin/DateTimeFormat.pm
@@ -0,0 +1,38 @@
+package Template::Plugin::DateTimeFormat;
+$Template::Plugin::DateTimeFormat::VERSION = '0.04';
+use 5.006;
+use strict;
+use warnings;
+use DateTime;
+use Class::Load;
+
+# hacked Template::Plugin::DateTime::Format with patch from
+# https://rt.cpan.org/Public/Bug/Display.html?id=120391
+
+use base 'Template::Plugin';
+
+sub new {
+ my ($class, $context, $formatter_class, $new_args, $format_args) = @_;
+ Class::Load::load_class($formatter_class || die 'need class name');
+
+ my @new_args = ref $new_args eq 'ARRAY' ? @$new_args : $new_args;
+ if ($format_args) {
+ $format_args = [ $format_args ] unless ref $format_args eq 'ARRAY';
+ }
+
+ bless {
+ _CONTEXT => $context,
+ formatter => $formatter_class->new(@new_args),
+ format_args => $format_args || [],
+ }, $class;
+}
+
+sub format {
+ my ($self, $date) = @_;
+
+ my $fmt = $self->{formatter};
+ my @args = @{$self->{format_args}};
+ return $fmt->format_datetime($date, @args);
+}
+
+1;