diff options
author | dakkar <dakkar@thenautilus.net> | 2012-12-09 15:30:06 +0000 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2012-12-09 15:30:06 +0000 |
commit | 7a005adbf486cbb6c3f64ba26b1aa97c2f696025 (patch) | |
tree | 29f1e82702d43f5e1710a990416d2b032065db50 /lib/Feed/Role/FixDateTime.pm | |
parent | maildir publisher (diff) | |
download | feeder-7a005adbf486cbb6c3f64ba26b1aa97c2f696025.tar.gz feeder-7a005adbf486cbb6c3f64ba26b1aa97c2f696025.tar.bz2 feeder-7a005adbf486cbb6c3f64ba26b1aa97c2f696025.zip |
renaming roles
Diffstat (limited to 'lib/Feed/Role/FixDateTime.pm')
-rw-r--r-- | lib/Feed/Role/FixDateTime.pm | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/Feed/Role/FixDateTime.pm b/lib/Feed/Role/FixDateTime.pm new file mode 100644 index 0000000..86bc19a --- /dev/null +++ b/lib/Feed/Role/FixDateTime.pm @@ -0,0 +1,29 @@ +package Feed::Role::FixDateTime; +use Moose::Role; +use 5.016; +use namespace::autoclean; +use DateTime; + +requires 'process_entry'; + +before process_entry => sub { + my ($self,$entry) = @_; + + $self->log->trace('before process_entry - begin'); + + for my $f ('issued','modified') { + my $date = $entry->$f; + if (!$date) { + $date = DateTime->from_epoch(epoch=>0); + } + if ($date && $date->time_zone->is_floating) { + $date->set_time_zone('UTC'); + } + + $entry->$f($date); + } + + $self->log->trace('before process_entry - end'); +}; + +1; |