class MyApp < App::CLI::Dispatcher options :verbose, :debug def install(pkg_name) # ... end def uninstall(pkg_name) # ... end def mysubcmd(*args) Class.new(App::CLI::Dispatcher) { def subsub # ... end }.run(args) end private def my_helper # ... end end MyApp.run
- アプリケーション・クラスに固有の public_instance_methods がコマンドになる。
- コマンドがアプリケーション・クラスのインスタンスを独自に持ってサブコマンドを受け付けることもできる。
- abbrev を使ってかってに短縮オプションを生成する。