1 # $Id: Atom.pm,v 1.1.1.1 2004/05/29 17:29:56 btrott Exp $
3 package XML::Feed::Atom;
6 use base qw( XML::Feed );
8 use XML::Atom::Util qw( iso2dt );
9 use List::Util qw( first );
14 $feed->{atom} = XML::Atom::Feed->new(Stream => \$str)
15 or return $feed->error(XML::Atom::Feed->errstr);
21 sub title { $_[0]->{atom}->title }
23 my $l = first { $_->rel eq 'alternate' } $_[0]->{atom}->link;
24 $l ? $l->href : undef;
26 sub description { $_[0]->{atom}->tagline }
27 sub copyright { $_[0]->{atom}->copyright }
28 sub language { $_[0]->{atom}->language }
29 sub generator { $_[0]->{atom}->generator }
30 sub author { $_[0]->{atom}->author ? $_[0]->{atom}->author->name : undef }
31 sub modified { iso2dt($_[0]->{atom}->modified) }
35 for my $entry ($_[0]->{atom}->entries) {
36 push @entries, XML::Feed::Atom::Entry->wrap($entry);
41 package XML::Feed::Atom::Entry;
44 use base qw( XML::Feed::Entry );
45 use XML::Atom::Util qw( iso2dt );
46 use List::Util qw( first );
48 sub title { $_[0]->{entry}->title }
50 my $l = first { $_->rel eq 'alternate' } $_[0]->{entry}->link;
51 $l ? $l->href : undef;
53 sub summary { $_[0]->{entry}->summary }
54 sub content { $_[0]->{entry}->content ? $_[0]->{entry}->content->body : undef }
57 my $ns = XML::Atom::Namespace->new(dc => 'http://purl.org/dc/elements/1.1/');
58 $_[0]->{entry}->get($ns, 'subject');
61 sub author { $_[0]->{entry}->author ? $_[0]->{entry}->author->name : undef }
62 sub id { $_[0]->{entry}->id }
63 sub issued { iso2dt($_[0]->{entry}->issued) }
64 sub modified { iso2dt($_[0]->{entry}->modified) }