package Net::Google::Calendar::Comments; use strict; use Net::Google::Calendar::FeedLink; use base qw(Net::Google::Calendar::Base XML::Atom::Link); =head1 NAME Net::Google::Calendar::Comments - represent comments =head1 SYNOPSIS my ($event) = $cal->get_events; my $comments = $event->comments; if (!defined $comments) { die "No comments!\n"; } print "Comments are of type: ".$comments->rel."\n"; my $feed = $comments->feed_link; 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"; foreach my $comment ($cal->get_feed($feed->feed)->entries) { print "\t".$comment->title."\n"; } =head1 METHODS =cut =head2 new =cut sub new { my $class = shift; my %opts = @_; my $self = $class->SUPER::new(Version => "1.0", %opts); return $self; } =head2 rel [rel] Type of comments contained within. Currently, there's a distinction between regular comments and reviews. Returns either C (or C which means the same) or C. =cut sub rel { my $self = shift; my $pre = "http://schemas.google.com/g/2005#"; if (@_) { my $new = shift; my @vals = qw(regular reviews); die "$new is not one of the allowed values for rel (".join(",", @vals).")" unless grep { $new eq $_ } @vals; $self->set_attr('rel', "${pre}${new}"); } my $rel = $self->get_attr('rel'); $rel =~ s!^$pre!! if defined $rel; return $rel; } =head2 element_name Our element name =cut sub element_name { return 'gd:comments'; } =head2 feed_link [feed_link] Get or set the feed link objects. =cut sub feed_link { my $self = shift; my $name = 'gd:feedLink'; my $ns = ''; #my $ns = "http://schemas.google.com/g/2005"; if (@_) { my $feed = shift; XML::Atom::Base::set($self, $ns, $name, $feed, {}); #$self->set($ns, $name, $feed, {}); } my $tmp = $self->_my_get($ns, $name); return Net::Google::Calendar::FeedLink->new(Elem => $tmp); } 1;