summaryrefslogtreecommitdiff
path: root/lib/Feed/HelperRole
diff options
context:
space:
mode:
authorGianni Ceccarelli <gianni.ceccarelli@net-a-porter.com>2012-12-29 13:00:02 +0000
committerGianni Ceccarelli <gianni.ceccarelli@net-a-porter.com>2013-01-31 11:34:47 +0000
commit7d350619965f8732ac15d27cf8bdd0ed8454442b (patch)
tree7049f9330d0d84da2c9c3b4e6937030fa7947fb3 /lib/Feed/HelperRole
parentclean MDC (diff)
downloadfeeder-7d350619965f8732ac15d27cf8bdd0ed8454442b.tar.gz
feeder-7d350619965f8732ac15d27cf8bdd0ed8454442b.tar.bz2
feeder-7d350619965f8732ac15d27cf8bdd0ed8454442b.zip
add helper methods to Entries
Diffstat (limited to 'lib/Feed/HelperRole')
-rw-r--r--lib/Feed/HelperRole/FeedEntry.pm28
-rw-r--r--lib/Feed/HelperRole/Mail.pm6
2 files changed, 31 insertions, 3 deletions
diff --git a/lib/Feed/HelperRole/FeedEntry.pm b/lib/Feed/HelperRole/FeedEntry.pm
new file mode 100644
index 0000000..3abe2e1
--- /dev/null
+++ b/lib/Feed/HelperRole/FeedEntry.pm
@@ -0,0 +1,28 @@
+package Feed::HelperRole::FeedEntry;
+use Moose::Role;
+use 5.012;
+use namespace::autoclean;
+
+requires 'content','summary','id','link','modified','issued';
+
+sub unified_id {
+ my ($self) = @_;
+
+ return $self->id // $self->link;
+}
+
+sub unified_date {
+ my ($self) = @_;
+
+ return $self->modified // $self->issued;
+}
+
+sub unified_content {
+ my ($self) = @_;
+
+ my $c = $self->content;
+ return $c if $c->body;
+ return $self->summary;
+}
+
+1;
diff --git a/lib/Feed/HelperRole/Mail.pm b/lib/Feed/HelperRole/Mail.pm
index 44a80c0..e0e239e 100644
--- a/lib/Feed/HelperRole/Mail.pm
+++ b/lib/Feed/HelperRole/Mail.pm
@@ -73,14 +73,14 @@ sub entry_to_mime {
my ($self,$entry) = @_;
my $from = 'feeder@localhost';
- my $date = $entry->modified // $entry->issued
+ my $date = $entry->unified_date
// DateTime->now(time_zone=>'UTC');
my $from_name = $entry->author // $self->title;
try { $from_name = decode('utf-8',$from_name) };
$from_name =~ tr/,//d;
my $subject = $entry->title//'(no title)';
try { $subject = decode('utf-8',$subject) };
- my $id = sha1_hex($entry->id // $entry->link);
+ my $id = sha1_hex($entry->unified_id);
my $body = $self->prepare_body($entry);
@@ -116,7 +116,7 @@ sub prepare_body {
feeder => $self,
feed => $self->feed,
entry => $entry,
- content => $entry->content,
+ content => $entry->unified_content,
},
\$out,
)