Guest User

Untitled

a guest
Apr 24th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. require 'rake'
  2. require 'tempfile'
  3.  
  4. # PAKER = "./custom_rhino.jar"
  5. # CMD = "java -jar %s -c %s >> %s"
  6. PAKER = "./yuicompressor-2.2.5.jar"
  7. CMD = "java -jar %s --type css --charset UTF-8 < %s > %s"
  8.  
  9.  
  10. TARGETS = {
  11. # Use array syntax ["file1", "file2", "file3"] to compress these 3 files into one
  12. ["base.css",
  13. "public.css",
  14. "header.css",
  15. "nhoods.css",
  16. "layout.css",
  17. "users.css",
  18. "userpane.css",
  19. "statuspane.css",
  20. "forms.css",
  21. "messaging.css",
  22. "search.css",
  23. "frame.css",
  24. "help.css",
  25. "footer.css",
  26. "../includes/libs/modalbox/modalbox.css",
  27. "tooltips.css",
  28. "progressmeter.css",
  29. "login.css",
  30. "dating.css",
  31. "dashboard.css",
  32. "entertainers.css"] => "_global.css",
  33.  
  34. ["base.css",
  35. "header.css",
  36. "layout.css",
  37. "footer.css",
  38. "nhoods.css",
  39. "myaccount.css",
  40. "public.css",
  41. "forms.css",
  42. "progressmeter.css",
  43. "entertainers.css",
  44. "help.css",
  45. "adminui.css"] => "_admin.css",
  46.  
  47. ["base.css",
  48. "header.css",
  49. "footer.css",
  50. "nhoods.css",
  51. "start.css"] => "_start.css",
  52.  
  53. ["base.css",
  54. "header.css",
  55. "layout.css",
  56. "forms.css",
  57. "footer.css",
  58. "login.css"] => "_login.css"
  59.  
  60. }
  61.  
  62. task :default => [:compress]
  63.  
  64. desc 'Clean all the compressed files'
  65. task :clean do
  66. TARGETS.each do |tgt, output|
  67. puts "Cleaning up old #{output}"
  68. FileUtils.rm_f(output)
  69. end
  70. end
  71.  
  72. desc 'Compress all CSS into one file'
  73.  
  74. task :compress => :clean do
  75. TARGETS.each do |tgt, output|
  76. temp = Tempfile.new('js-compressing')
  77. puts "Preparing to compress #{unfold_object(tgt).join(", \n\t")} into #{output}..."
  78. print "Processing #{heap_size(unfold_object(tgt))}"
  79. unfold_object(tgt).each do |input|
  80. print "."
  81. system("cat #{input} >> #{temp.path}")
  82. end
  83. system(CMD % [PAKER, temp.path, output])
  84. puts "done. Result: #{heap_size([output])}\n\n"
  85. end
  86. end
  87.  
  88. def unfold_object(obj)
  89. if obj.is_a? Array
  90. obj
  91. elsif obj.is_a? String and obj !~ /\*/
  92. [obj]
  93. else
  94. Dir[obj]
  95. end
  96. end
  97.  
  98. def heap_size(arr)
  99. # `du -ch #{arr.join(" ")}` =~ /^(.+?)total$/
  100. $1.strip
  101. end
Add Comment
Please, Sign In to add comment