Class: Vcard::V4_0::PropertyValue::DateTimeLocal
- Inherits:
 - 
      Vobject::PropertyValue
      
        
- Object
 - Vobject::PropertyValue
 - Vcard::V4_0::PropertyValue::DateTimeLocal
 
 
- Includes:
 - Comparable
 
- Defined in:
 - lib/vobject/vcard/v4_0/propertyvalue.rb
 
Instance Attribute Summary
Attributes inherited from Vobject::PropertyValue
Instance Method Summary collapse
- #<=>(another) ⇒ Object
 - 
  
    
      #initialize(val)  ⇒ DateTimeLocal 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of DateTimeLocal.
 - #to_hash ⇒ Object
 - #to_s ⇒ Object
 
Methods inherited from Vobject::PropertyValue
Constructor Details
#initialize(val) ⇒ DateTimeLocal
Returns a new instance of DateTimeLocal.
      197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219  | 
    
      # File 'lib/vobject/vcard/v4_0/propertyvalue.rb', line 197 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 = "date-time" # fill in unspecified month && year && date; only for purposes of comparison val[:year] = sprintf("%04d", ::Date.today.year) unless val.has_key?(:year) val[:month] = sprintf("%02d", ::Date.today.month) unless val.has_key?(:month) val[:day] = sprintf("%02d", ::Date.today.day) unless val.has_key?(:day) val[:hour] = 0 unless val.has_key?(:hour) val[:min] = 0 unless val.has_key?(:min) val[:sec] = 0 unless val.has_key?(:sec) value[:time] = if val[:zone].empty? ::Time.utc(val[:year], val[:month], val[:day], val[:hour], val[:min], val[:sec]) else ::Time.local(val[:year], val[:month], val[:day], val[:hour], val[:min], val[:sec]) end if val[:zone] && val[:zone] != "Z" offset = val[:zone][:hour] * 3600 + val[:zone][:min] * 60 offset += val[:zone][:sec] if val[:zone][:sec] offset = -offset if val[:sign] == "-" value[:time] += offset.to_i end end  | 
  
Instance Method Details
#<=>(another) ⇒ Object
      193 194 195  | 
    
      # File 'lib/vobject/vcard/v4_0/propertyvalue.rb', line 193 def <=>(another) value[:time] <=> another.value[:time] end  | 
  
#to_hash ⇒ Object
      250 251 252 253 254 255 256 257 258 259 260  | 
    
      # File 'lib/vobject/vcard/v4_0/propertyvalue.rb', line 250 def to_hash ret = {} ret[:year] = value[:year] if value[:year] ret[:month] = value[:month] if value[:month] ret[:day] = value[:day] if value[:day] ret[:hour] = value[:hour] if value[:hour] ret[:min] = value[:min] if value[:min] ret[:sec] = value[:sec] if value[:sec] ret[:zone] = value[:zone] if value[:zone] ret end  | 
  
#to_s ⇒ Object
      221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248  | 
    
      # File 'lib/vobject/vcard/v4_0/propertyvalue.rb', line 221 def to_s ret = "" ret << if value[:year] value[:year] else "--" end if value[:month] ret << value[:month] elsif value[:day] ret << "-" end if value[:day] ret << value[:day] end ret << "T" ret << value[:hour] if value[:hour] ret << value[:min] if value[:min] ret << value[:sec] if value[:sec] ret << value[:zone] if value[:zone] == "Z" if value[:zone].is_a?(Hash) ret << value[:zone][:sign] ret << value[:zone][:hour] ret << value[:zone][:min] ret << value[:zone][:sec] if value[:zone][:sec] end ret end  |