2013-03-03 5 views
0

Я не знаю Ruby, но Rake выглядит так здорово, поэтому я пытаюсь его использовать.Как фильтровать и получать подсписку из FileList в Rake?

Когда я выбираю файлы с FileList["*.cpp"], иногда я хочу извлечь из него подсети.

Для входного файла источника,

somefile.txt 
a.cpp 
MySome.cpp 
Another.cpp 
MySomeValue.cpp 

newlist = FileList["*.cpp"].sublistByFiltering("*Value.cpp").sublistByFiltering("My*") 

И newlist показывает только MySomeValue.cpp.

Как это сделать?

Update

Метод sublistByFiltering мой воображаемый один, и я ищу для функции в настоящее время в Rake.

ответ

1

Я не уверен, где вы придумали этот метод sublistByFiltering, но я думаю, что вы ищете, чтобы пересечь внутренние массивы из нескольких элементов FileList.

a = FileList['*.cpp'].to_a 
b = FileList['*Value.cpp'].to_a 
a & b #=> files that are in both `a` and `b` 

Однако, если вы знаете, все шаблоны впереди, и вы только когда-либо комбинируя их, вы можете передать регулярное выражение конструктору FileList:

FileList[/My.*Value\.cpp/] 
+0

Могу ли я сделать FileList назад из внутреннего массива? – Eonil

+1

Уверен, потому что любая запись в массиве - это просто неглавное имя файла, вы можете просто передать весь массив в качестве аргумента FileList.new! Например. 'FileList.new (files_I_lurve)' – coreyward

+0

Кстати, вы можете проверить остальные документы FileList. Краткое изложение объясняет основную идею класса, и все методы (и их индивидуальный источник) доступны там. http://rake.rubyforge.org/classes/Rake/FileList.html – coreyward

Смежные вопросы