目标:收集所有文件,包括目录结构,匹配目录结构。
皱纹:需要过滤掉一个令人讨厌的不受欢迎的目录,这个目录很匹配,但值得称道的是“不要想要”。更改了实际字符串以保护无辜者。
下面的脚本有效但我必须单独检查不需要的路径。当我使用排除在irb中测试同一个FileList时,它可以根据需要工作。从我的rakefile中,我看到了FileList返回的不想要的目录。
FileList['source/**/content/scripts'].exclude('do-not-want').each do |f|
unless /do-not-want/ =~ f #hmm why does the exclude above not actually exclude do-not-want directories?
Dir.chdir(f) do |d|
puts "directory changed to #{d} and copying scripts from #{d} to common directory #{target}"
FileUtils.cp_r('.', target)
end
end
end
当然,我正在做一些愚蠢的事。
奖励积分:如果你帮我学习佣金/红宝石,并告诉我一个更好的方法来实现同样的目标,同时打败皱纹。
答案 0 :(得分:0)
我认为您应该使用FileList['source/**/content/scripts'].exclude(/\/do-no-want\//)
来过滤掉包含“/ do-not-want /”子字符串的路径。尝试将输出添加到您的rake文件中,这样您就可以查看和调试正在进行的操作在那里。