Guest User

Untitled

a guest
Jul 15th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. require 'rubygems'
  2. require 'nokogiri'
  3.  
  4. @doc = Nokogiri::XML(File.open("Database.xml"))
  5. nodes = @doc.xpath("//object[@type='TODO']")
  6. projects = {"0" => {"todos" => [], "title" => 'NEXT'}}
  7. nodes.each do |node|
  8. todo = {}
  9. node.children.each do |attr|
  10. if attr["name"] == 'parent' && !attr["idrefs"].nil?
  11. todo["parent"] = attr["idrefs"]
  12. else
  13. todo[attr["name"]] = attr.text
  14. end
  15. end
  16. if (todo["focuslevel"].to_i == 1 or todo["focuslevel"].to_i == 2) && todo["status"].to_i # Проект или область действия
  17. projects[node["id"]] ||= {}
  18. projects[node["id"]].merge!(todo)
  19. projects[node["id"]]["todos"] ||= []
  20. end
  21. if todo["focuslevel"].to_i == 0 && todo["status"].to_i == 0 # Задача
  22. unless todo.include?("parent") || !todo["parent"].empty?
  23. todo["parent"] = "0"
  24. end
  25. unless projects.include?(todo["parent"])
  26. projects[todo["parent"]] = {"todos" => []}
  27. end
  28. projects[todo["parent"]]["todos"] << todo
  29. end
  30. end
  31. projects.each do |id, attr|
  32. unless attr["todos"].empty?
  33. puts '===================================================================================================================='
  34. puts attr["title"]
  35. puts '--------------------------------------------------------------------------------------------------------------------'
  36. attr["todos"].each do |attr|
  37. hrefs = attr["content"].scan /http:\/\/[a-zA-Z0-9\/\._-]*/ if attr["content"]
  38. puts "- #{attr["title"]}"
  39. hrefs.each do |href|
  40. puts " => #{href}"
  41. end unless hrefs.nil? || hrefs.empty?
  42. end
  43. end
  44. end
Add Comment
Please, Sign In to add comment