diff options
author | dakkar <dakkar@thenautilus.net> | 2012-12-09 12:53:10 +0000 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2012-12-09 12:53:10 +0000 |
commit | 73955dd901bcc008b22315bc327bf0fa7787394e (patch) | |
tree | 7bbff120f6f8d1f3bfcc46b8b79b698c3c175f61 /lib | |
parent | sample structure (diff) | |
download | feeder-73955dd901bcc008b22315bc327bf0fa7787394e.tar.gz feeder-73955dd901bcc008b22315bc327bf0fa7787394e.tar.bz2 feeder-73955dd901bcc008b22315bc327bf0fa7787394e.zip |
fix datetime
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Feed.pm | 2 | ||||
-rw-r--r-- | lib/Feed/FixDateTime.pm | 25 |
2 files changed, 27 insertions, 0 deletions
diff --git a/lib/Feed.pm b/lib/Feed.pm index d8c67a8..d1bb7df 100644 --- a/lib/Feed.pm +++ b/lib/Feed.pm @@ -6,6 +6,8 @@ use MooseX::Types::URI 'Uri'; with 'MooseX::Traits'; use XML::Feed; +has '+_trait_namespace' => ( default => __PACKAGE__ ); + has uri => ( is => 'ro', isa => Uri, diff --git a/lib/Feed/FixDateTime.pm b/lib/Feed/FixDateTime.pm new file mode 100644 index 0000000..f9ebe73 --- /dev/null +++ b/lib/Feed/FixDateTime.pm @@ -0,0 +1,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; |