lib/xcselect/nkissue.rb in xcselect-0.1.4 vs lib/xcselect/nkissue.rb in xcselect-0.1.5
- old
+ new
@@ -15,26 +15,30 @@
def self.find_class_key hash
hash['$objects'].index(hash['$objects'].select{|o| o['$classname'] == "NKIssue"}.first)
end
def self.parse file_name
- ns_plist = Plist::parse_xml(read_bin_plist_to_xml(file_name))
- # this is the integer that we will use to filter all archived nkissue objects
- nk_issue_key = find_class_key(ns_plist)
+ begin
+ ns_plist = Plist::parse_xml(read_bin_plist_to_xml(file_name))
+ # this is the integer that we will use to filter all archived nkissue objects
+ nk_issue_key = find_class_key(ns_plist)
- # filter just the nkissue hashes
- object_array = ns_plist['$objects']
- obj_key_hashs = object_array.select{|o| o.class == Hash && o['$class'] && nk_issue_key == o['$class']['CF$UID'] }
+ # filter just the nkissue hashes
+ object_array = ns_plist['$objects']
+ obj_key_hashs = object_array.select{|o| o.class == Hash && o['$class'] && nk_issue_key == o['$class']['CF$UID'] }
- issues = {}
- obj_key_hashs.each do |nskey|
- issue = NKIssue.new
- issue.name = object_array[nskey['name']['CF$UID']]
- issue.uuid = object_array[nskey['directory']['CF$UID']]
- issue.date = self.archive_time_to_time(object_array[nskey['date']['CF$UID']]['NS.time'])
- issues[issue.name] = issue # unless name.nil?
+ issues = {}
+ obj_key_hashs.each do |nskey|
+ issue = NKIssue.new
+ issue.name = object_array[nskey['name']['CF$UID']]
+ issue.uuid = object_array[nskey['directory']['CF$UID']]
+ issue.date = self.archive_time_to_time(object_array[nskey['date']['CF$UID']]['NS.time'])
+ issues[issue.name] = issue # unless name.nil?
+ end
+ return issues
+ rescue Exception => e
+ return {}
end
- return issues
end
def to_s
"<NKIssue:#{name}:#{date} #{uuid}>"
end