2
我開始創建一組Rake任務(我第一次,有限的Ruby經驗),當我運行第一個任務時,使用命令行中的rake test
或rake db
,我得到兩個輸出,即使有隻是目錄中的一個文件。耙子運行功能兩次
rakefile.rb
require 'fileutils'
FILES = ["html", "css", "js", "svg", "otf", "eot", "ttf", "woff", "jpeg", "map", "ico", "map", "png", "db"]
desc 'test script'
task :test => [:db]
task :db do
copy_to 'data/', 'c:/xampp/htdocs/home/shared/data'
end
def copy_to(dest, src)
files = FileList.new()
files.include Dir.glob("#{src}/*.*")
FILES.each {|ext| files.include "#{src}/*.#{ext}"}
files.each do |src|
puts "copying: #{src} to #{dest}"
FileUtils.cp src, dest
end
end
輸出
(in C:/xampp/htdocs/home/gateway)
copying: c:/xampp/htdocs/home/shared/data/foo.db to data/
copying: c:/xampp/htdocs/home/shared/data/foo.db to data/
當我做rake -T
我得到以下(這是我所期望的):
(in C:/xampp/htdocs/home/gateway)
rake test # test script
當然foo.db
中,只有被複制一次,或者第二個副本覆蓋 fi第一個。
編輯運行命令行
** Invoke test (first_time)
** Invoke db (first_time)
** Execute db
copying: c:/xampp/htdocs/home/shared/data/foo.db to data/
copying: c:/xampp/htdocs/home/shared/data/foo.db to data/
** Execute test
rake test --trace
是它執行:db
和然後:test
?或者:db
運行兩次,因爲它似乎在這裏做?我錯過了什麼?我做錯了什麼?
*打了額頭*我完全錯過了@Jordan。我想我會限制可能包含的文件的擴展名,所以我會重寫並且只做一次。我還會重命名該變量以反映它是文件擴展名。 –