Я создал скрипт .thor
для настройки нового проекта ruby именно так, как мне нравится. Я использую команду Thor::Actions directory
для создания приложения полностью из структуры каталогов шаблонов, а не определяю их встроенными в heredocs. Каталог скрипта выглядит примерно так:
rubynu.thor
template/
bin/
lib/
%app_name%.rb.tt
%app_name%
README.markdown
.gitignore
...
Это отлично работает и позволяет мне легко визуализировать и изменять отдельные части шаблона по мере изменения моего вкуса.
Но я не могу придумать хороший способ заставить Тора найти каталог шаблонов после того, как файл .thor
будет установлен системой с использованием thor install rubynu.thor
. Install помещает копию файла .thor
в ~/.thor
, но игнорирует каталог template/
, поэтому шаблоны больше не находятся.
Я не хочу жестко кодировать путь source_root
или вручную копировать каталог шаблона в ~/.thor
. Есть ли что-то встроенное в thor, которое обрабатывает установку шаблонов вместе с файлом .thor
? Было бы здорово, если бы их можно было упаковать вместе при установке.
Если нет, то как лучше всего это обойти? Наверняка где-то есть системные задачи, которые используют файлы шаблонов. Как ты это сделал? Я полагаю, я мог бы обойти thor 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
Спасибо!