class IcalImporter::RemoteEvent

Attributes

event[RW]
utc[RW]
utc?[RW]

Public Class Methods

new(event) click to toggle source
# File lib/ical_importer/remote_event.rb, line 7
def initialize(event)
  @event = event
  begin
    @utc = @event.dtstart.tz_utc
  rescue
    @utc = true
  end
end

Public Instance Methods

all_day_event?() click to toggle source
# File lib/ical_importer/remote_event.rb, line 28
def all_day_event?
  begin
    (Time.parse(end_date_time.to_s) - Time.parse(start_date_time.to_s)) >= 1.day
  rescue ArgumentError => e # no time info in '', Defaulting to false
    false
  end
end
end_date_time() click to toggle source
# File lib/ical_importer/remote_event.rb, line 20
def end_date_time
  get_date_time_for :dtend
end
event_attributes() click to toggle source
# File lib/ical_importer/remote_event.rb, line 36
def event_attributes
  {
    :uid => uid.to_s,
    :title => summary.to_s,
    :utc => utc?,
    :description => description.to_s,
    :location => location.to_s,
    :start_date_time => start_date_time,
    :end_date_time => end_date_time,
    :all_day_event => all_day_event?
  }
end
recurrence_id() click to toggle source
# File lib/ical_importer/remote_event.rb, line 24
def recurrence_id
  event.recurrence_id ? event.recurrence_id.to_datetime : nil
end
start_date_time() click to toggle source
# File lib/ical_importer/remote_event.rb, line 16
def start_date_time
  get_date_time_for :dtstart
end

Private Instance Methods

get_date_time_for(event_method) click to toggle source
# File lib/ical_importer/remote_event.rb, line 51
def get_date_time_for(event_method)
  event_method = event_method.to_sym
  raise ArgumentError, "Should be dtend or dtstart" unless [:dtstart, :dtend].include? event_method
  event_time = event.send event_method
  if event_time.respond_to?(:tz_utc)
    (event_time.tz_utc) ? event_time.utc : event_time.to_datetime
  else
    begin
      event_time.to_datetime
    rescue
      event_time
    end
  end
end