新しいルビープロジェクトを好きなように設定するための.thor
スクリプトを作成しました。私はThor :: Actions directory
コマンドを使用して、テンプレートディレクトリ構造からアプリケーションを完全にビルドします。これは、heredocsでインラインで定義するのとは異なります。Thorがシステムにインストールされているファイルのテンプレートを見つける方法を教えてください。
rubynu.thor
template/
bin/
lib/
%app_name%.rb.tt
%app_name%
README.markdown
.gitignore
...
これは本当に素晴らしい作品、と私は簡単に私の好みの変化に応じてテンプレートの個々の部分を視覚化し、変更することができます:スクリプトディレクトリは次のようになります。
しかし.thor
ファイルがthor install rubynu.thor
を使ってインストールされると、テンプレートディレクトリを見つけるには良い方法を見つけられません。インストールでは.thor
ファイルのコピーが~/.thor
に貼り付けられますが、template/
ディレクトリは無視されるため、テンプレートは検出されません。
source_root
パスをハードコードしたり、テンプレートディレクトリを手動で~/.thor
にコピーしたくないです。 .thor
ファイルとともにテンプレートのインストールを処理するものがありますか?彼らがインストールされたとき一緒にパッケージ化することができれば素晴らしいだろう。
もしそうでない場合、これを回避する最も良い方法は何ですか?確かにテンプレートファイルを使用するどこかにシステムがインストールされています。どうやってやったの?私はthor install
をバイパスして、これを宝石として提供することができます(残念だと思われるかもしれませんが)。または、弾丸を噛んで、すべてのテンプレート定義を巨大な.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
ありがとう:参考
は、ここで私が使用しているシンプルな.thor
ファイルです!
これはまさに私が聴きたいと思っていたものです。それは完璧に動作します、ありがとう男! – Mitch