Исключить файлы из FileList на Ruby - PullRequest
1 голос
/ 28 ноября 2011

у меня есть грабли со следующим SRC = FileList['md/*.md'], но я хочу исключить некоторые файлы

Я пытался

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

Но это не работает, всегда перечисляйте мне все файлы

пример:

вместо моего rakefile.rb у меня есть каталог md со следующим содержимым:

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

Я хочу перечислить все без header.md

Ответы [ 2 ]

2 голосов
/ 28 ноября 2011

Это прекрасно работает для меня:

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 голосов
/ 28 ноября 2011

Не уверен, что происходит.Возможно, вы используете версию Rake и / или ruby?

Я протестировал ваши фрагменты с ruby-1.8.7 (rake 0.8.7 и rake 0.9.2.2) и с ruby-1.9.2 (рейк 0.8.7 и рейк 0.9.2.2).Все четыре конфигурации дают ожидаемый результат.

Код:

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$/)

Выход:

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
...