В build.rake файле У меня есть массив, содержащий имена файлов JavaScript:Массив имен файлов: как переместить 2 определенных файла (если они есть) на передний план?
JS_FROM_INDEX=`./bin/extract_files -e js index.html`.split
Он держит эти файлы:
js/config.js
js/vendor/dollar.js
js/vendor/ejs.min.js
js/utils.js
......
js/Viewport.js
Тогда существует правило, которое (это мое предположение, как я совершенно невежественно рубин еще) рассказывает, как сделать сборки/app.js файла, а именно: принять JS/config.js файла, а затем добавить все остальные файлы из массива выше к нему:
file DEST + '/app.js' => [DEST]+JS_FROM_INDEX.dup << 'index.html' << DEST do |t|
sh "cat js/config.js > #{t.name}"
sh "cat #{JS_FROM_INDEX.reject{|f| f =~ /\/config\.js/ }.join(" ")} | bin/yuicompressor --type js >> #{t.name}"
end
Он работает нормально, но теперь я узнал, что JS/utils.js должен быть в самом начале, еще до JS/config.js.
Так мои вопросы это:
Есть хороший способ сортировки JS_FROM_INDEX массива, так что JS/utils.js и JS/config.js перемещаются в его первые позиции? Можно ли это сделать как oneliner (например, какой-то код добавлен к вызову .split)?
UPDATE:
Скудные предложил (спасибо!) Код:
scripts.unshift("js/config.js") if scripts.delete("js/config.js");
scripts.unshift("js/utils.js") if scripts.delete("js/utils.js");
Для интеграции, что в Rakefile я думаю, что нужно ввести еще 2 переменные:
JS_FROM_INDEX=`./bin/extract_files -e js index.html`.split
JS_SORTED_1=......use JS_FROM_INDEX somehow....
JS_SORTED_2=......use JS_FROM_SORTED_1 somehow....
file DEST + '/app.js' => [DEST]+JS_SORTED_2.dup << 'index.html' << DEST do |t|
sh "cat #{JS_FROM_INDEX.reject{|f| f =~ /\/config\.js/ }.join(" ")} | bin/yuicompressor --type js >> #{t.name}"
end
Любые идеи, пожалуйста, как подключить точки выше?
Хорошо спасибо, имеет смысл. Мне просто интересно, как добавить это в Rakefile, поскольку я исхожу из фона perl/Makefiles ... Можно ли это сделать как oneliner и добавить к вызову '.split'? –