Sha256: e36f019f2a76ec3055375aef5090cc841ef4632559b2370270dd95c4586bd9b2
Contents?: true
Size: 1.65 KB
Versions: 1
Compression:
Stored size: 1.65 KB
Contents
=begin Copyright (C) 2008 Sam Roberts This library is free software; you can redistribute it and/or modify it under the same terms as the ruby language itself, see the file COPYING for details. =end module Vpim class Icalendar module Property # Occurrences are calculated from DTSTART: and RRULE:. If there is not # RRULE:, the component recurs only once, at the start time. # # Limitations: # # Only a single RRULE: is currently supported, this is the most common # case. # # Implementation of multiple RRULE:s, and RDATE:, EXRULE:, and EXDATE: is # on the todo list. Its not a very high priority, because I haven't seen # calendars using the full range of recurrence features, and haven't # received feedback from any users requesting these features. So, if you # need it, contact me and implementation will get on the schedule. module Recurrence # The times this event occurs, as a Vpim::Rrule. def occurrences start = dtstart unless start raise ArgumentError, "Components with no DTSTART: don't have occurrences!" end Vpim::Rrule.new(start, propvalue('RRULE')) end alias occurences occurrences #:nodoc: backwards compatibility # Check if this event overlaps with the time period later than or equal to +t0+, but # earlier than +t1+. def occurs_in?(t0, t1) occurrences.each_until(t1).detect { |t| tend = t + (duration || 0); tend > t0 } end def rdates Vpim.decode_date_time_list(propvalue('RDATE')) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vpim-0.619 | lib/vpim/property/recurrence.rb |