| Net-Google-Calendar documentation | Contained in the Net-Google-Calendar distribution. |
Net::Google::Calendar::FeedLink - represents a link to a feed
my @feeds = $comments->feeds;
foreach my $feed (@feeds) {
print "There are ".$feed->count_hint." comments in this feed\n";
print "Is this feed read only? ".$feed->read_only."\n";
print "This feed ".(($feed->href)? "is" : "isn't" )." remote\n";
print "This feed is of type ".$feed->rel."\n";
my $atom = $cal->get_feed($feed->feed); # $obj is an XML::Atom::Feed
foreach my $comment ($atom->entries) {
print "\t".$comment->title."\n";
}
}
Create a new FeedLink
Hints at the number of entries in the feed. Depending on the implementation, may not be a precise count.
Return our Element name
Specifies whether the contained feed is read-only.
Specifies the link relation; allows the service to provide multiple types of feed links for a single entity. Has the same semantics and allowed values as the rel attribute of the <atom:link> element.
Specifies the feed URI. If the nested feed is embedded and not linked, this attribute may be omitted.
Get the Atom feed.
Returns a URI object if the feed is remote or a scalar containing an XML::Atom::Feed object
| Net-Google-Calendar documentation | Contained in the Net-Google-Calendar distribution. |
package Net::Google::Calendar::FeedLink; use strict; use XML::Atom::Feed; use XML::Atom::Link; use base qw(XML::Atom::Link Net::Google::Calendar::Base); use LWP::Simple qw(get);
sub new { my $class = shift; return $class->SUPER::new(@_); }
sub count_hint { my $self = shift; return $self->_do('@countHint', @_); }
sub element_name { return 'gd:feedLink'; }
sub read_only { my $self = shift; if (@_) { my $val = @_; push @_, ($val)? 'true' : 'false'; } return _convert_bool($self->_do('@readOnly', @_)); } sub _convert_bool { my $val = shift; return '' if !defined $val; return $val if ($val =~ m!^(\d+)$! && ($val==0 or $val==1)); return 0 if $val eq 'false'; return 1 if $val eq 'true'; #die "Illegal boolean value $val"; return ($val)? 1 : 0; }
sub rel { my $self = shift; return $self->_do('@rel', @_); }
sub href { my $self = shift; return URI->new($self->_do('@href')); } sub _do { my $self = shift; my $name = shift; my $attr = ($name =~ s!^@!!); my $gd_ns = ''; # $self->{_gd_ns}; if (@_) { my $new = shift; if ($attr) { $self->set_attr($name, $new); } else { $self->set($gd_ns, "${name}", '', { value => "${new}" }); } } my $val; if ($attr) { $val = $self->get_attr($name); } else { $val = $self->_my_get($gd_ns, "${name}"); } return $val; }
sub feed { my $self = shift; my $ns = ""; # "http://purl.org/atom/ns#"; if (@_) { my $feed = shift; XML::Atom::Base::set($self, $ns, 'feed', $feed, {}); #$self->add($ns, 'feed', $feed, {}); } my $href = $self->href; if (defined $href) { return URI->new($href); } else { my $feed = $self->_do('feed') || return; my $tmp = XML::Atom::Feed->new( Elem => $feed ); $tmp->{ns} = $ns; return $tmp; } } 1;