簡體   English   中英

Thor Gem-在任務之前發送參數

[英]Thor Gem - Sending parameter prior to task

我知道令人困惑的描述,請參見示例:

Foo < Thor

  desc "bar","bar method"
  def bar
    puts "Hello from bar #{options[:id]}"
  end

  desc "nar","nar method"
  def nar
    puts "Hello from nar"
  end
end

這很簡單。 因此,如果我打電話(已經用這種方法設置了類名作為第一個標識符)。 現在沒有ID,因此不會打印任何內容。

foo bar
> Hello from bar
foo nar
> Hello from nar

最后是問題,如何使用Thor可以這種形式向方法發送參數?

foo 12 bar
> Hello from bar 12
foo nar 
> Hello from nar

我想做的是在任務名稱之前傳遞參數欄,Thor可以做到嗎?

很抱歉讓您感到困惑,但目前最好的方法是簡化我的復雜代碼。

您擁有Ruby的強大功能,因此您可以:

class Foo < Thor
  desc "bar","bar method"
  def bar(id)
    puts "Hello from bar #{id}"
  end

  def method_missing(m, *args, &block)
    if m.is_a? Integer  ## Might not work. May need to_i and an exception check.
      bar(m)
    end
  end
end

這太過頭了,所以您的行程可能會有所不同...

暫無
暫無

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

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