Ho creato uno script .thor
per l'impostazione di un nuovo progetto di rubino nello stesso modo in cui mi piace. Sto utilizzando il comando Thor :: Actions directory
per creare l'app interamente da una struttura di directory del modello, anziché definirli in linea con heredocs. La directory di script simile a questa:Come rendere Thor trovare i modelli per i file installati .thor del sistema?
rubynu.thor
template/
bin/
lib/
%app_name%.rb.tt
%app_name%
README.markdown
.gitignore
...
questo funziona davvero grande, e mi permette di visualizzare e modificare le singole parti del modello come il mio gusto cambia facilmente.
Ma non riesco a trovare un modo carino per ottenere thor per trovare la directory dei modelli una volta che il file .thor
è stato installato utilizzando thor install rubynu.thor
. Installa una copia del file .thor
in ma ignora la directory template/
e quindi i modelli non vengono più trovati.
Non voglio hardcodificare il percorso source_root
o copiare manualmente la directory modello su ~/.thor
. C'è qualcosa di integrato in thor che gestisce l'installazione di modelli insieme al file .thor
? Sarebbe bello se potessero essere confezionati insieme quando installati.
In caso contrario, qual è il modo migliore per aggirare questo? Sicuramente ci sono compiti di sistema installati da qualche parte che usano i file modello. Come hai fatto? Suppongo di poter aggirare lo thor install
e fornire questo come un gioiello (anche se sembra eccessivo), o mordere il proiettile e incollare tutte le definizioni del modello in linea in un gigantesco file .thor
(meno piacevole apportare modifiche alla struttura in un secondo momento).
Per riferimento, ecco la semplice file .thor
sto usando:
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
Grazie!
Questo è esattamente quello che speravo di sentire. Funziona perfettamente, grazie amico! – Mitch