foremanを読んでいく
- thorを使っている
Foreman::CLI < Thor
が最初に呼び出されるクラスでForeman::CLI.start
が最初に呼ばれるForeman::CLI
はコマンドラインからの入力のチェックなど実行前の準備- 主な処理は
Foreman::Engine#start
で行う Foreman::Engine::CLI
はForeman::Engine
を継承している- 継承しているけど結局継承しているクラスは1つだしforeman単体で使っていたらそんなに意味はなさそう
Foreman::Engine#load_procfile
でProcfile
を一つ一つのprocess
として読み込むprocess
はForeman::Process
のインスタンス- 結局のところ
Process.spawn
をしている - ログの出力は
Foreman::Engine::CLI#output
で行う。キレイで分かりやすいログが出て来るのはこの実装のおかげ - あまり見たことないけど、foremanは他のライブラリが拡張したりするのを見込んでるのかな?
- foremanと同等のものが多言語でもあるから1つ読んでると他の言語の勉強にも便利そう