Stworzyłem skrypt .thor
do skonfigurowania nowego projektu ruby tak, jak lubię. Używam polecenia Thor :: Actions directory
do zbudowania aplikacji w całości ze struktury katalogu szablonów, w przeciwieństwie do definiowania ich za pomocą heredoc. Katalog skrypt wygląda tak:Jak sprawić, by Thor znalazł szablony dla zainstalowanych systemów. Plików?
rubynu.thor
template/
bin/
lib/
%app_name%.rb.tt
%app_name%
README.markdown
.gitignore
...
Działa to naprawdę świetne, i pozwala mi łatwo wizualizować i zmieniać poszczególne części szablonu jako moich zmian smakowych.
Ale nie mogę znaleźć dobrego sposobu na znalezienie katalogu szablonów po zainstalowaniu systemu .thor
przy użyciu thor install rubynu.thor
. Zainstaluj kije z pliku .thor
w ~/.thor
, ale ignoruje katalog template/
, a więc szablony nie są już znalezione.
Nie chcę kodem źródłowym ścieżki source_root
lub ręcznie skopiować katalogu szablonu do ~/.thor
. Czy jest coś wbudowanego w system, który obsługuje instalowanie szablonów wraz z plikiem .thor
? Byłoby wspaniale, gdyby można je było spakować razem po zainstalowaniu.
Jeśli nie, jaki jest najmilszy sposób obejścia tego? Na pewno są instalowane przez system zadania typu thor, które używają plików szablonów. Jak to zrobiłeś? Przypuszczam, że mogłem ominąć thor install
i zapewnić to jako klejnot (choć wydaje się to przesadą), lub ugryźć kulę i wbić wszystkie definicje szablonów w plik gigantyczny .thor
(mniej przyjemny do wprowadzenia zmian w konstrukcji później).
Dla porównania, tutaj jest prosta .thor
plik używam:
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
Dzięki!
Dokładnie to miałem nadzieję usłyszeć. Działa idealnie, dzięki człowieku! – Mitch