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/AuthorName.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/AuthorName.pm')
-rw-r--r-- | lib/Feed/Role/AuthorName.pm | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/Feed/Role/AuthorName.pm b/lib/Feed/Role/AuthorName.pm new file mode 100644 index 0000000..ec8a44d --- /dev/null +++ b/lib/Feed/Role/AuthorName.pm @@ -0,0 +1,30 @@ +package Feed::Role::AuthorName; +use Moose::Role; +use 5.016; +use namespace::autoclean; +use Email::Address; +use Try::Tiny; + +requires 'process_entry'; + +before process_entry => sub { + my ($self,$entry) = @_; + + $self->log->trace('before process_entry - begin'); + + my $author = $entry->author; + + return unless $author && $author =~ /\@/; + + try { + my $address = (Email::Address->parse($author))[0]; + if (my $name = $address->name) { + $entry->author($name); + } + }; + + $self->log->trace('before process_entry - end'); +}; + +1; + |