use List::Util qw( first );
use DateTime::Format::W3CDTF;
+use XML::Atom::Entry;
+XML::Atom::Entry->mk_elem_accessors(qw( lat long ), ['http://www.w3.org/2003/01/geo/wgs84_pos#']);
+
sub init_empty {
my ($feed, %args) = @_;
$args{'Version'} ||= '1.0';
$l ? $l->href : undef;
}
}
+
+sub self_link {
+ my $feed = shift;
+ if (@_) {
+ my $uri = shift;
+ $feed->{atom}->add_link({type => "application/atom+xml", rel => "self", href => $uri});
+ return $uri;
+ }
+ else
+ {
+ my $l =
+ first
+ { !defined $_->rel || $_->rel eq 'self' }
+ $feed->{atom}->link;
+ ;
+
+ return $l ? $l->href : undef;
+ }
+}
+
sub description { shift->{atom}->tagline(@_) }
sub copyright { shift->{atom}->copyright(@_) }
sub language { shift->{atom}->language(@_) }
}
sub add_entry {
- my $feed = shift;
- my($entry) = @_;
+ my $feed = shift;
+ my $entry = shift || return;
+ $entry = $feed->_convert_entry($entry);
$feed->{atom}->add_entry($entry->unwrap);
}
}
}
+sub lat {
+ my $entry = shift;
+ if (@_) {
+ $entry->{entry}->lat($_[0]) if $_[0];
+ } else {
+ $entry->{entry}->lat;
+ }
+}
+
+sub long {
+ my $entry = shift;
+ if (@_) {
+ $entry->{entry}->long($_[0]) if $_[0];
+ } else {
+ $entry->{entry}->long;
+ }
+}
+
1;