class Icalendar::Values::DateTime

Constants

FORMAT

Public Class Methods

new(value, params = {}) click to toggle source
# File lib/icalendar/values/date_time.rb, line 14
def initialize(value, params = {})
  if value.is_a? String
    params['tzid'] = 'UTC' if value.end_with? 'Z'

    begin
      parsed_date = ::DateTime.strptime(value, FORMAT)
    rescue ArgumentError => e
      raise FormatError.new("Failed to parse \"#{value}\" - #{e.message}")
    end

    super parsed_date, params
  elsif value.respond_to? :to_datetime
    super value.to_datetime, params
  else
    super
  end
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/icalendar/values/date_time.rb, line 40
def <=>(other)
  if other.is_a?(Icalendar::Values::Date) || other.is_a?(Icalendar::Values::DateTime)
    value_ical <=> other.value_ical
  else
    nil
  end
end
utc?() click to toggle source
# File lib/icalendar/values/date_time.rb, line 48
def utc?
  value.respond_to?(:utc?) ? value.utc? : value.to_time.utc?
end
value_ical() click to toggle source
# File lib/icalendar/values/date_time.rb, line 32
def value_ical
  if tz_utc
    "#{strftime FORMAT}Z"
  else
    strftime FORMAT
  end
end