在 Ruby 的 Thor 上,如何从应用程序中显示命令用法
On Ruby's Thor, How to show the command usage from within the application
我正在使用 Ruby 和 Thor 构建 CLI,如果没有传递任何选项,我想在屏幕上打印命令用法。
下面伪代码行的内容:
Class Test < Thor
desc 'test', 'test'
options :run_command
def run_command
if options.empty?
# Print Usage
end
end
end
我目前正在使用以下 hack(我并不以此为荣!=P):
Class Test < Thor
desc 'test', 'test'
options :run_command
def run_command
if options.empty?
puts `my_test_command help run_command`
end
end
end
执行此操作的正确方法是什么?
您可以使用command_help
显示命令的帮助信息:
require 'thor'
class Test < Thor
desc 'run_command --from=FROM', 'test usage help'
option :from
def run_command
unless options[:from]
Test.command_help(Thor::Base.shell.new, 'run_command')
return
end
puts "Called command from #{options[:from]}"
end
end
Test.start
然后 运行 没有选项:
$ ruby example.rb run_command
Usage:
example.rb run_command --from=FROM
Options:
[--from=FROM]
test usage help
和运行选项:
$ ruby example.rb run_command --from=somewhere
Called command from somewhere
我正在使用 Ruby 和 Thor 构建 CLI,如果没有传递任何选项,我想在屏幕上打印命令用法。
下面伪代码行的内容:
Class Test < Thor
desc 'test', 'test'
options :run_command
def run_command
if options.empty?
# Print Usage
end
end
end
我目前正在使用以下 hack(我并不以此为荣!=P):
Class Test < Thor
desc 'test', 'test'
options :run_command
def run_command
if options.empty?
puts `my_test_command help run_command`
end
end
end
执行此操作的正确方法是什么?
您可以使用command_help
显示命令的帮助信息:
require 'thor'
class Test < Thor
desc 'run_command --from=FROM', 'test usage help'
option :from
def run_command
unless options[:from]
Test.command_help(Thor::Base.shell.new, 'run_command')
return
end
puts "Called command from #{options[:from]}"
end
end
Test.start
然后 运行 没有选项:
$ ruby example.rb run_command
Usage:
example.rb run_command --from=FROM
Options:
[--from=FROM]
test usage help
和运行选项:
$ ruby example.rb run_command --from=somewhere
Called command from somewhere