This class holds Time values. While Apple uses seconds since 2001, the rest of the world uses seconds since 1970. So if you access value directly, you get the Time class. If you access via get_value you either geht the timestamp or the Apple timestamp
create a XML date strimg from a time object
# File lib/facter/util/cfpropertylist/lib/rbCFTypes.rb, line 84 def CFDate.date_string(val) # 2009-05-13T20:23:43Z val.getutc.strftime("%Y-%m-%dT%H:%M:%SZ") end
set value to defined state
# File lib/facter/util/cfpropertylist/lib/rbCFTypes.rb, line 98 def initialize(value = nil,format=CFDate::TIMESTAMP_UNIX) if(value.is_a?(Time) || value.nil?) then @value = value.nil? ? Time.now : value elsif value.instance_of? Date @value = Time.utc(value.year, value.month, value.day, 0, 0, 0) elsif value.instance_of? DateTime @value = value.to_time.utc else set_value(value,format) end end
parse a XML date string
# File lib/facter/util/cfpropertylist/lib/rbCFTypes.rb, line 90 def CFDate.parse_date(val) # 2009-05-13T20:23:43Z val =~ %{^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})Z$} year,month,day,hour,min,sec = $1, $2, $3, $4, $5, $6 return Time.utc(year,month,day,hour,min,sec).getlocal end
get timestamp, either UNIX or Apple timestamp
# File lib/facter/util/cfpropertylist/lib/rbCFTypes.rb, line 120 def get_value(format=CFDate::TIMESTAMP_UNIX) if(format == CFDate::TIMESTAMP_UNIX) then @value.to_i else @value.to_f - CFDate::DATE_DIFF_APPLE_UNIX end end
set value with timestamp, either Apple or UNIX
# File lib/facter/util/cfpropertylist/lib/rbCFTypes.rb, line 111 def set_value(value,format=CFDate::TIMESTAMP_UNIX) if(format == CFDate::TIMESTAMP_UNIX) then @value = Time.at(value) else @value = Time.at(value + CFDate::DATE_DIFF_APPLE_UNIX) end end
convert to binary
# File lib/facter/util/cfpropertylist/lib/rbCFTypes.rb, line 136 def to_binary(bplist) bplist.date_to_binary(@value) end
convert to XML
# File lib/facter/util/cfpropertylist/lib/rbCFTypes.rb, line 129 def to_xml(parser) n = parser.new_node('date') n = parser.append_node(n, parser.new_text(CFDate::date_string(@value))) n end
Generated with the Darkfish Rdoc Generator 2.