Changeset 1762
- Timestamp:
- 10/15/06 23:16:56
- Files:
-
- trunk/plagger/deps/Publish-iCal.yaml (modified) (1 diff)
- trunk/plagger/lib/Plagger/Plugin/Publish/iCal.pm (modified) (3 diffs)
- trunk/plagger/t/plugins/Publish-iCal/base.t (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/plagger/deps/Publish-iCal.yaml
r1725 r1762 3 3 depends: 4 4 Data::ICal: 0 5 DateTime::Format::ICal: 0 trunk/plagger/lib/Plagger/Plugin/Publish/iCal.pm
r1760 r1762 7 7 use Data::ICal::Entry::Event; 8 8 use DateTime::Duration; 9 use DateTime::Format::ICal; 9 10 use Plagger::Util; 10 11 … … 41 42 42 43 my $tz = $date->time_zone; 43 my %param;44 if (!$tz->is_floating && $tz->name ne 'UTC' && !$tz->isa('DateTime::TimeZone::OffsetOnly')) {45 # don't set TZID if tz name is like '+0900'46 $param{TZID} = $tz->name;47 }48 44 49 my($dtstart, $dtend); 45 my $dtstart = $date->format('ICal'); 46 my $dtend = $date->format('ICal'); 47 50 48 if ($date->hms eq '00:00:00') { 51 $dtstart = [ $d ate->strftime('%Y%m%d'), { %param,VALUE => 'DATE' } ];52 $dtend = [ $d ate->strftime('%Y%m%d'), { %param,VALUE => 'DATE' } ];49 $dtstart = [ $dtstart, { VALUE => 'DATE' } ]; 50 $dtend = [ $dtend, { VALUE => 'DATE' } ]; 53 51 } else { 54 $dtstart = [ iso8691_full($date), \%param ]; 55 $dtend = [ iso8691_full($date), \%param ]; 52 $dtstart =~ s/^TZID=(.*?):// 53 and $dtstart = [ $dtstart, { TZID => $1 } ]; 54 $dtend =~ s/^TZID=(.*?):// 55 and $dtend = [ $dtend, { TZID => $1 } ]; 56 56 } 57 57 … … 76 76 77 77 $context->log(info => "Wrote iCalendar file to $path"); 78 }79 80 sub iso8691_full {81 my $date = shift;82 my $iso = $date->strftime('%Y%m%dT%H%M%S');83 $iso .= $date->time_zone->name eq 'UTC' ? 'Z' : '';84 $iso;85 78 } 86 79 trunk/plagger/t/plugins/Publish-iCal/base.t
r1760 r1762 31 31 my $ical = Data::ICal->new(filename => $::output); 32 32 is @{$ical->entries}, 5; 33 is $ical->entries->[0]->property('dtstart')->[0]->value, "20060710T 213213";34 is $ical->entries->[0]->property('dtend')->[0]->value, "20060710T 213213";33 is $ical->entries->[0]->property('dtstart')->[0]->value, "20060710T123213Z"; 34 is $ical->entries->[0]->property('dtend')->[0]->value, "20060710T123213Z"; 35 35 36 36 === Full day event … … 109 109 ok -e $::output; 110 110 my $ical = Data::ICal->new(filename => $::output); 111 is $ical->entries->[0]->property('dtstart')->[0]->value, "20061020T 123456";111 is $ical->entries->[0]->property('dtstart')->[0]->value, "20061020T033456Z"; 112 112 is_deeply $ical->entries->[0]->property('dtstart')->[0]->parameters, {}; 113 113
