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<regular> (or C<undef> which means the same) or C<reviews>.
=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;