class ICalPal::Event
def [](k)
-
k
(String
) -- Key/property name
def [](k) case k when 'age' # pseudo-property @self['sdate'].year - @self['edate'].year when 'availability' # Integer -> String EventKit::EKEventAvailability.select { |_k, v| v == @self['availability'] }.keys when 'datetime' # date[ at time[ - time]] unless $opts[:sd] || $opts[:days] == 1 t = @self['sdate'].to_s t += ' at ' unless @self['all_day'].positive? end unless (@self['all_day'] && @self['all_day'].positive?) || @self['placeholder'] t ||= '' t += "#{@self['sctime'].strftime($opts[:tf])}" if @self['sctime'] t += " - #{@self['ectime'].strftime($opts[:tf])}" unless $opts[:eed] || !@self['ectime'] || @self['duration'].zero? end t when 'location' # location[ address] (@self['location'])? [ @self['location'], @self['address'] ].join(' ').chop : nil when 'notes' # \n -> :nnr (@self['notes'])? @self['notes'].strip.gsub("\n", $opts[:nnr]) : nil when 'sday' # pseudo-property RDT.new(*@self['sdate'].to_a[0..2]) when 'status' # Integer -> String EventKit::EKEventStatus.select { |_k, v| v == @self['status'] }.keys[0] when 'title' # title[ (age N)] @self['title'] + ((@self['calendar'] == 'Birthdays')? " (age #{self['age']})" : '') when 'uid' # for icalBuddy @self['UUID'] else @self[k] end end