summaryrefslogtreecommitdiff
path: root/lib/Feed/FixDateTime.pm
blob: f9ebe73075362b246eb415f31e4b1afbb9b199e7 (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
package Feed::FixDateTime; 
use Moose::Role;
use 5.016;
use namespace::autoclean;
use DateTime;
 
requires 'process_entry';
 
before process_entry => sub {
    my ($self,$entry) = @_;
 
    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);
    }
};
 
1;