Thor を使用して、作成中の Ruby gem の CLI を作成しています。myapp path/to/file
実行可能ファイルは、ユーザーがタスクを定義する必要がなく、引数のみを定義する必要があるという意味で、理想的には のようなコマンドを取ります。
API を調べましたが、default_taskはタスク/引数が存在しない場合にのみ機能します。
この可変ファイル引数をデフォルトのメソッド/タスクに送信し、存在しないタスクのように解釈しないようにするにはどうすればよいですか?
Thor を使用して、作成中の Ruby gem の CLI を作成しています。myapp path/to/file
実行可能ファイルは、ユーザーがタスクを定義する必要がなく、引数のみを定義する必要があるという意味で、理想的には のようなコマンドを取ります。
API を調べましたが、default_taskはタスク/引数が存在しない場合にのみ機能します。
この可変ファイル引数をデフォルトのメソッド/タスクに送信し、存在しないタスクのように解釈しないようにするにはどうすればよいですか?
myapp パス/to/ファイル
2つの部分の答え:
1) myapp
...「thor」以外の実行可能ファイルを使用するには、「thor/runner」ライブラリを利用する必要があります。
2)path/to/file
次のように、initialize メソッドで実現できます。
class Something < Thor
def initialize(*args)
super
case @path
when /something$/; self.class.new([@path],options).do_run
end
end
desc 'do_run', "do something"
argument :path, :banner=>"path/to/file", :optional=>true
def do_run
# something
end
end