使用Thor,我可以仅通过CLI参数(不是任务)并将其发送到默认方法/任务吗?

时间:2011-01-08 18:42:21

标签: ruby command-line-interface thor

我正在使用Thor为我正在制作的Ruby gem创建一个CLI。理想情况下,可执行文件会采用类似myapp path/to/file的命令,因为我宁愿用户不必定义任务,只需要参数。

我查看了API,但default_task仅在没有任务/参数时才有效。

如何让Thor将此变量文件参数发送到默认方法/任务,而不是将其解释为不存在的任务?

1 个答案:

答案 0 :(得分:0)

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