Я создал сценарий .thor
для настройки нового проекта ruby именно так, как мне это нравится. Я использую команду Thor :: Actions directory
для создания приложения полностью из структуры каталогов шаблонов, а не для их определения в heredocs. Каталог скриптов выглядит примерно так:
rubynu.thor
template/
bin/
lib/
%app_name%.rb.tt
%app_name%
README.markdown
.gitignore
...
Это действительно здорово работает и позволяет мне легко визуализировать и изменять отдельные части шаблона по мере того, как мой вкус меняется.
Но я не могу придумать хороший способ заставить Тор найти каталог с шаблоном после того, как файл .thor
будет установлен системой с помощью tor install rubynu.thor
. Установка вставляет копию файла .thor
в ~ / .thor
, но игнорирует каталог template /
, и поэтому шаблоны больше не обнаруживаются.
Я не хочу жестко кодировать путь source_root
или вручную копировать каталог шаблона в ~ / .thor
. Есть ли что-то встроенное в Thor, которое обрабатывает установку шаблонов вместе с файлом .thor
? Было бы здорово, если бы их можно было упаковать вместе при установке.
Если нет, то как лучше всего это обойти? Наверняка где-то установлены системные задачи, использующие файлы шаблонов.Как ты это сделал? Я полагаю, я мог бы обойти tor install
и предоставить это как драгоценный камень (хотя это кажется излишним), или укусить пулю и вставить все определения шаблонов в гигантский .thor
файл (менее приятно потом вносить изменения в конструкцию).
Для справки, вот простой файл .thor
, который я использую:
class Rubynu < Thor::Group
include Thor::Actions
argument :app_name
def self.source_root
File.dirname(__FILE__)
end
def apply_directory_template
directory 'template', app_name
end
end
Спасибо!