2012-06-14 58 views
2

我正在將一個小型項目轉換爲使用Thor,而且缺乏頭腦,我想使用內置的幫助來記錄可用的任務。 但是,如果我使用參數定義任務,則任務級幫助將恢復爲幫助該類 - 這意味着不顯示任何任務描述或預期參數的詳細信息。Thor:當我定義了一個參數時,如何讓我的Thor任務顯示幫助?

我希望能夠有一種方法,我可以用一個參數調用,而不是一個參數,所以它可以像這樣

$ thor broke:foo hello 
in a.thor broke:foo arg1=hello 

使用我煮的問題倒在以下thorfile這按我想要的方式工作,除了幫助輸出中斷。我已經刪除了其他任何參數,因爲它們對問題沒有影響。 第一項任務確定:foo將正常顯示幫助,第二個任務朗聲道:foo是寧可少有所幫助:

class Ok < Thor 
    desc "foo", "ok test2" 
    def foo 
     puts "in a.thor ok:foo\n" 
    end 
end 
class Broke < Thor 
    argument :arg1, :type=>:string, :desc => "arg1" 
    desc "foo", "broke test1" 
    def foo 
     puts "in a.thor broke:foo arg1=#{self.arg1}\n" 
    end 
end 

請求有關OK幫助:FOO任務方法給出:

$ thor help ok:foo 
    Usage: 
     thor ok:foo 

    ok test 

請求幫助爲打破:FOO任務是寧可少有所幫助:

$ thor help broke:foo 
    Tasks: 
     thor broke:foo ARG1   # broke test1 
     thor broke:help ARG1 [TASK] # Describe available tasks or one specific task 

我如何定義參數,並得到顯示正確的任務幫助?

+0

我不認爲這是你想要做什麼的問題,我認爲這是雷神確實是個bug。我今天花了一些時間在四處探索,試圖弄清楚發生了什麼事情,並且我已經到了能夠弄清楚發生了什麼的地步。我在托爾提交了一個錯誤的測試錯誤和描述,我會看看我是否無法嘗試修復它。 – workergnome

回答

0

你的小錯誤很小。

你有說法,而不是method_option

這裏正確的版本:

class Ok < Thor 
    desc "foo", "ok test2" 
    def foo 
     puts "in a.thor ok:foo\n" 
    end 
end 
class Broke < Thor 
    method_option :arg1, :type=>:string, :desc => "arg1" 
    desc "foo", "broke test1" 
    def foo 
     puts "in a.thor broke:foo arg1=#{self.arg1}\n" 
    end 
end 

Wiki about method_option on github.com

+0

對不起,但這不是一個錯誤 - 我想要的方法需要一個參數,而不是一個參數 - 我已經更新了問題澄清 – cleverchimp

相關問題