2011-11-28 1 views
1

j'ai un rakefile avec les éléments suivants SRC = FileList['md/*.md'] mais je veux exclure certains fichiersExclure les fichiers de FileList sur Ruby

J'ai essayé

SRC = FileList['md/*.md'].exclude("md/header.md") 
SRC = FileList['md/*.md'].exclude(/header/) 
SRC = FileList['md/*.md'].exclude(/header.md$/) 

Mais cela ne fonctionne pas, moi de la liste toujours tous les fichiers

un exemple:

à la place de mon rakefile.rb, j'ai un répertoire avec md le contenu suivant:

rakefile.rb 
md/ 
    index.md 
    example.md 
    header.md 

Je veux énumérer tous sans header.md

+0

Quels sont les fichiers que vous essayez d'exclure? A quoi ressemble votre 'FileList' avant le' exclude'? À quoi ressemble «SRC» après «exclure»? "Ça ne marche pas" n'est pas assez d'information. – Phrogz

Répondre

2

Cela fonctionne bien pour moi:

p FileList['md/*.md'] 
#=> ["md/example.md", "md/header.md", "md/index.md"] 

p FileList['md/*.md'].exclude("md/header.md") 
#=> ["md/example.md", "md/index.md"] 

p FileList['md/*.md'].exclude(/header/) 
#=> ["md/example.md", "md/index.md"] 

p FileList['md/*.md'].exclude(/header.md$/) 
#=> ["md/example.md", "md/index.md"] 
+0

Maintenant c'est bizarre, je ne peux pas le faire fonctionner – rkmax

+0

J'ai un problème similaire je [autre poste] (http://stackoverflow.com/questions/8279308/rakefile-rb-doesnt-work-correctly) – rkmax

0

Je ne sais pas ce qui se passe. Peut-être que c'est la version de Rake et/ou ruby ​​que vous utilisez?

J'ai testé vos snippets avec ruby-1.8.7 (râteau 0.8.7 et râteau 0.9.2.2) et avec ruby-1.9.2 (râteau 0.8.7 et râteau 0.9.2.2). Les quatre configurations donnent la sortie attendue.

code:

puts "no exculde:" 
puts FileList['md/*.md'] 
puts '---' 
puts "exclude('md/header.md'):" 
puts FileList['md/*.md'].exclude('md/header.md') 
puts '----' 
puts "exclude(/header/):" 
puts FileList['md/*.md'].exclude(/header/) 
puts '----' 
puts "exclude(/header.md$/):" 
puts FileList['md/*.md'].exclude(/header.md$/) 

Sortie:

no exculde: 
md/example.md 
md/header.md 
md/index.md 
--- 
exclude('md/header.md'): 
md/example.md 
md/index.md 
---- 
exclude(/header/): 
md/example.md 
md/index.md 
---- 
exclude(/header.md$/): 
md/example.md 
md/index.md 
+0

'ruby 1.9 .2p290 (2011-07-09 révision 32553) [x86_64-linux] 'et' rake version 0.9.2.2' sur ubuntu 11.10 – rkmax