Class: Vcard::V3_0::PropertyValue::DateTimeLocal
Instance Attribute Summary
#errors, #norm, #type, #value
Instance Method Summary
collapse
#name, #to_norm
Constructor Details
Returns a new instance of DateTimeLocal.
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
|
# File 'lib/vobject/vcard/v3_0/propertyvalue.rb', line 186
def initialize(val)
self.value = val.clone
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
|
Instance Method Details
#<=>(another) ⇒ Object
182
183
184
|
# File 'lib/vobject/vcard/v3_0/propertyvalue.rb', line 182
def <=>(another)
value[:time] <=> another.value[:time]
end
|
#to_hash ⇒ Object
215
216
217
218
219
220
221
222
223
224
225
226
|
# 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 ⇒ Object
205
206
207
208
209
210
211
212
213
|
# File 'lib/vobject/vcard/v3_0/propertyvalue.rb', line 205
def to_s
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
|