Advanced? правило для файловых задач Rake - PullRequest
2 голосов
/ 18 декабря 2010

Я безуспешно пытался объединить некоторые из моих в основном избыточных файловых задач Rake.Было бы замечательно даже направить меня к какой-нибудь документации по правилам рейка. Я нашел очень мало.

Все примеры, которые я нашел, были файлами, которые отличались своими расширениями, в моем случае мне нужно что-то более конкретное.

file '.../bundle-a.js' => ['a.js','b.js','c.js']

file '.../bundle-b.js' => ['d.js','e.js','f.js']

rule ??? => ??? do |f|
   File.open( f.name, 'w' ) do |of|
       of.write cat(f.prerequisites).concat('SPECIFIC TEXT TO EACH BUNDLE')
   end
end

Если я создаю правило для .js => .js, я получаю рекурсивные ошибки.Если я смотрю на / bundle /, происходит сбой или я не понимаю, какая обработка происходит.Кроме того, мне нужно добавить эту часть о конкретном тексте, есть ли решение с помощью правил для этого?

1 Ответ

0 голосов
/ 15 марта 2013

Вы можете использовать Regexps в шаблонах и Procs в зависимостях.Процессы получают имя файла в качестве аргумента и должны возвращать имя файла или массив имен файлов.

rule %r{\A.../bundle-(.*)\.js\z} => proc{|fn| required_files_for(fn) } do |f|
  ...
end

Если вы используете «.js» в качестве цели и «.js» в качестве зависимости, это означает, что jsфайл может быть собран из себя, что является рекурсивным правилом.

...