簡體   English   中英

使用Thor,我可以僅通過CLI參數(不是任務)並將其發送到默認方法/任務嗎?

[英]Using Thor, can I pass the CLI an argument only (not a task) and send it to a default method/task?

我正在使用Thor為我正在創建的Ruby gem創建一個CLI。 理想情況下,可執行文件會接受像myapp path/to/file這樣的myapp path/to/file ,因為我寧願用戶不必定義任務,只需要參數。

我查看了API,但default_task僅在沒有任務/參數時才有效。

如何讓Thor將此變量文件參數發送到默認方法/任務,而不是將其解釋為不存在的任務?

myapp path / to / file

兩部分答案:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM