class Vobject::Vcalendar::PropertyValue::DateTimeLocal

Public Class Methods

new(val) click to toggle source
# File lib/vobject/vcalendar/propertyvalue.rb, line 265
def initialize(val)
  self.value = val.clone
  # val consists of :time && :zone values. If :zone is empty, floating local time (i.e. system local time) is assumed
  self.type = "datetimeLocal"
  value[:time] = if val[:zone].nil? || val[:zone].empty?
                   ::Time.local(val[:year], val[:month], val[:day], val[:hour], val[:min], val[:sec])
                 else
                   ::Time.utc(val[:year], val[:month], val[:day], val[:hour], val[:min], val[:sec])
                 end
  value[:origtime] = value[:time]
end

Public Instance Methods

<=>(another) click to toggle source
# File lib/vobject/vcalendar/propertyvalue.rb, line 261
def <=>(another)
  value[:time] <=> another.value[:time]
end
to_hash() click to toggle source
# File lib/vobject/vcalendar/propertyvalue.rb, line 286
def to_hash
  ret = {
    year: value[:year],
    month: value[:month],
    day: value[:day],
    hour: value[:hour],
    min: value[:min],
    sec: value[:sec],
  }
  ret[:zone] = value[:zone] if value[:zone]
  ret
end
to_s() click to toggle source
# File lib/vobject/vcalendar/propertyvalue.rb, line 277
def to_s
  # ret = sprintf("%04d%02d%02dT%02d%02d%02d", value[:year], value[:month], value[:day], value[:hour], value[:min], value[:sec])
  ret = sprintf("%s%s%sT%s%s%s", value[:year], value[:month], value[:day], value[:hour], value[:min], value[:sec])
  zone = "Z" if value[:zone] && value[:zone] == "Z"
  ret = ret + zone if !zone.nil?
  ret
end