- removed unsed javascript from javascript minifier rake task
[opensuse:yast-web-client.git] / webclient / lib / tasks / jsmin.rake
1 #--
2 # Webyast Webclient framework
3 #
4 # Copyright (C) 2009, 2010 Novell, Inc. 
5 #   This library is free software; you can redistribute it and/or modify
6 # it only under the terms of version 2.1 of the GNU Lesser General Public
7 # License as published by the Free Software Foundation. 
8 #
9 #   This library is distributed in the hope that it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 
12 # details. 
13 #
14 #   You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software 
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 #++
18
19 require "tempfile"
20 vars = ['JSMIN', 'JAVASCRIPTS_PATH', 'MIN']
21
22 JSMIN = File.join(RAILS_ROOT, '/script/javascript/jsmin.rb')
23 JAVASCRIPTS_PATH = "#{RAILS_ROOT}/public/javascripts"
24 MIN = "#{RAILS_ROOT}/public/javascripts/min"  
25
26 def minify(list, output)
27    tmp = Tempfile.open('all')
28    list.each {|file| open(file) {|f| tmp.write(f.read) } }
29    tmp.rewind 
30
31    sh "ruby #{JSMIN} < #{tmp.path} > #{output}"
32 end
33
34 #"jquery-effects.min.js", "jquery.tinysort.js", "jquery.tipsy.js", "firewall.helper.js"]
35 namespace :js do
36   directory MIN
37   javascripts = ["jquery-1.4.2.js", "jquery.query.js", "jquery.timers.js", "jquery.ui.custom.js", "jquery.validate.js", "validation.js",
38                  "jqbrowser-compressed.js", "jquery.badbrowser.js", "yast.widgets.js", "yast.helpers.js", "jquery.activity.js", "notifier.js",
39                  "browser_fixes.js", "jquery.quicksearch.js", "digitalspaghetti.password.js", "script.js", 
40                  "jquerytimer.js","jquerySessionTimeout.js", "jquery.blockUI.js", "jqueryDisableOnSubmit.js",
41                 "jquery-effects.min.js", "jquery.tinysort.js", "jquery.tipsy.js", "webyast-firewall.js", "webyast-network.js",
42                 "jquery.event.drag-2.0.min.js", "jquery.event.drop-2.0.min.js", "jquery.qsearch.js", "roles.helper.js", "slidernav.js", 
43                 "webyast-modal-dialog.js", "webyast-online-help.js"]
44
45   Dir.chdir(JAVASCRIPTS_PATH) do
46     javascripts.map! {|f| File.join(Dir.pwd, f)}
47     
48     file 'base-min.js' => javascripts do | f |
49       output_file = File.join(MIN) + '/' + f.name
50       minify(f.prerequisites, output_file)
51     end
52   end
53
54   desc 'Minimize Javascripts'
55   task :"base" => [MIN, 'base-min.js']  do
56     puts "\nDone"
57   end
58 end
59
60
61
62