class Vcard::V3_0::PropertyValue::DateTimeLocal
Public Class Methods
new(val)
click to toggle source
# File lib/vobject/vcard/v3_0/propertyvalue.rb, line 186 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" val[:sec] += (val[:secfrac].to_f / (10**val[:secfrac].length)) if !val[:secfrac].nil? && !val[:secfrac].empty? 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] if val[:zone] && val[:zone] != "Z" offset = val[:zone][:hour].to_i * 3600 + val[:zone][:min].to_i * 60 offset += val[:zone][:sec].to_i if val[:zone][:sec] offset = -offset if val[:sign] == "-" value[:time] += offset.to_i end end
Public Instance Methods
<=>(another)
click to toggle source
# File lib/vobject/vcard/v3_0/propertyvalue.rb, line 182 def <=>(another) value[:time] <=> another.value[:time] end
to_hash()
click to toggle source
# File lib/vobject/vcard/v3_0/propertyvalue.rb, line 215 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/vcard/v3_0/propertyvalue.rb, line 205 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]) ret = ret + ",#{value[:secfrac]}" if value[:secfrac] zone = "Z" if value[:zone] && value[:zone] == "Z" zone = "#{value[:zone][:sign]}#{value[:zone][:hour]}:#{value[:zone][:min]}" if value[:zone] && value[:zone].is_a?(Hash) ret = ret + zone ret end