首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby的OptionParser是如何工作的?

Ruby的OptionParser是如何工作的?
EN

Stack Overflow用户
提问于 2014-12-01 22:28:07
回答 1查看 499关注 0票数 1

来自OptionParser的http://ruby-doc.org/stdlib-2.1.5/libdoc/optparse/rdoc/OptionParser.html的“最小示例”

代码语言:javascript
复制
require 'optparse'

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

  opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
    options[:verbose] = v
  end
end.parse!

p options
p ARGV

主要问题:

  • opts的内容到底是什么?是新的OptionParser实例,还是传递给脚本的所有/-\w//--\w+/-looking?作为推论,do是否阻塞了一个循环?
  • parse!是做什么的?为什么在整个do块上调用它?

还想知道:

  • 什么是OptionParser#banner方法?你会在什么背景下看到那篇文章?
  • 在这个例子中,您会看到第三个参数传递给OptionParser,在这个上下文中,对标志效果的描述是什么?
  • 如果脚本使用未知选项运行,如何创建自定义错误消息?
EN

回答 1

Stack Overflow用户

发布于 2014-12-01 22:58:46

  1. opts只是OptionParser的新实例。提供给.new的块使用以下行运行: 如果block_given,屈服自我?
  2. parse!parse是一样的,但它具有破坏性,这意味着它将从ARGV中删除使用过的开关。在整个do ... end块上调用它,因为返回的值是新的OptionParser实例。
  3. banner获取摘要的标题,可以用opts.banner = "foo"设置
  4. 当显示帮助时(-h标志)将显示描述: 用法: example.rb options -v,-逐字运行
  5. 您可以拯救OptionParser::InvalidOption异常: 解析器= OptionParser.new .开始parser.parse!救援选项分析者:“无效的args!”结束
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27238536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档