Data-ICal
view release on metacpan or search on metacpan
lib/Data/ICal.pm view on Meta::CPAN
sub mandatory_unique_properties {
qw(
prodid version
);
}
=head2 optional_unique_properties
According to the iCalendar standard, the following properties may be specified
at most one time for a calendar:
calscale method
=cut
sub optional_unique_properties {
qw(
calscale method
);
}
# In quoted-printable sections, convert from vcal10 "=\n" line endings to
# ical20 "\n ".
sub _vcal10_input_cleanup {
my $self = shift;
my @in_lines = @_;
my @out_lines;
my $in_qp = 0;
LINE: while (@in_lines) {
my $line = shift @in_lines;
if ( not $in_qp and $line =~ /^[^:]+;ENCODING=QUOTED-PRINTABLE/i ) {
$in_qp = 1;
}
unless ($in_qp) {
push @out_lines, $line;
next LINE;
}
if ( $line =~ s/=$// ) {
push @out_lines, $line;
$in_lines[0] = ' ' . $in_lines[0] if @in_lines;
} else {
push @out_lines, $line;
$in_qp = 0;
}
}
return @out_lines;
}
=head1 DEPENDENCIES
L<Data::ICal> requires L<Class::Accessor>, L<Text::vFile::asData>,
L<MIME::QuotedPrint>, and L<Class::ReturnValue>.
=head1 BUGS AND LIMITATIONS
L<Data::ICal> does not support time zone daylight or standard entries,
so time zone components are basically useless.
While L<Data::ICal> tries to check which properties are required and
repeatable, this only works in simple cases; it does not check for
properties that must either both exist or both not exist, or for
mutually exclusive properties.
L<Data::ICal> does not check to see if property parameter names are
known in general or allowed on the particular property.
L<Data::ICal> does not check to see if nested entries are nested
properly (alarms in todos and events only, everything else in
calendars only).
The only property encoding supported by L<Data::ICal> is quoted
printable.
Please report any bugs or feature requests to
C<bug-data-ical@rt.cpan.org>, or through the web interface at
L<http://rt.cpan.org>.
=head1 AUTHOR
Best Practical Solutions, LLC E<lt>modules@bestpractical.comE<gt>
=head1 LICENCE AND COPYRIGHT
Copyright (c) 2005 - 2020, Best Practical Solutions, LLC. All rights reserved.
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself. See L<perlartistic>.
=cut
1;
( run in 2.906 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )