Ruby简单的帮助选项实现

时间:2014-03-14 14:01:28

标签: ruby output command-line-arguments optparse

Ruby是否支持POD文档或任何替代方案?

我很有意思,因为我不知道如何提供一些简单的' -h'选项帮助。也许我在这里错了,拜托,给我很好的例子。

我的例子:

$ ruby rubyScript.rb -h
This message is shown if you pass parameter -h.

我的实现将是:

require 'optparse'

def HelpMessage()
  puts <<-__HELP__
  This message is shown if you pass parameter -h.
  __HELP__
end
OptionParser.new do |opts|
  opts.banner = "Usage: rubyScript.rb [options]"
  opts.on('-h', '--help', 'Help option') { HelpMessage(); exit()}
end.parse!

我认为这是一个有点难看的代码,但我不知道另一种创建简单帮助的方法

2 个答案:

答案 0 :(得分:4)

OptionParser比你想象的容易得多。

将其保存到文件中:

require 'optparse'

options = {}
OptionParser.new do |opts|
  opts.banner = "Usage: rubyScript.rb [options]"

  opts.on('-i', '--input FILE', 'Input file') { |o| options[:input] = o }
  opts.on('-o', '--output FILE', 'Output file') { |o| options[:output] = o }

  options[:help] = opts.help
end.parse!

puts options[:help]

运行没有选项的输出将输出:

Usage: rubyScript.rb [options]
    -i, --input FILE                 Input file
    -o, --output FILE                Output file

这意味着您可以在需要时以编程方式显示帮助。

取出界限:

puts options[:help]

并使用-h选项再次运行它会显示相同的内容,表明OptionParser会自动提供-h--help选项,除非覆盖这些选项。

  

Ruby是否支持POD文档或任何替代方案?

是的,但在这种情况下,除非您希望用户在使用您的应用程序之前真正花时间阅读您的文档,否则这对您没有帮助。 Ruby的RDoc可以很好地解析你的代码并提取各种程序员的脚本信息。请参阅the RDoc example page&#34;示例&#34;工作的部分...呃...例子。 RDoc包含在Ruby中,除非您使用yum / apt-get安装,在这种情况下,您可能需要安装RDoc / ri软件包。 ri是Ruby的内置文档,可以在命令行显示代码的帮助,其源文件由rdoc创建。

答案 1 :(得分:0)

将此行放在代码顶部:

(puts "This message is shown if you pass parameter -h."; exit) if ARGV.first == "-h"