summaryrefslogtreecommitdiff
path: root/lib/Feed/Role/FixDateTime.pm
blob: dfc37d1d460ca5014f593a20280d30b45a7b0915 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package Feed::Role::FixDateTime; 
use Moose::Role;
use 5.012;
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;