0

紛らわしい説明です。例を参照してください。

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

私がやろうとしているのは、タスク名の前にパラメーター bar を渡すことです。これは Thor で可能ですか?

紛らわしい質問で申し訳ありませんが、現時点で複雑なコードを単純化する最良の方法です。

4

1 に答える 1

0

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

これは私の頭の上から外れているので、走行距離は異なる場合があります...

于 2013-01-04T17:59:03.770 に答える