【问题标题】:ruby GLI optional argument starting with a dash (-)ruby GLI 可选参数以破折号 (-) 开头
【发布时间】:2016-04-25 14:33:14
【问题描述】:

我想知道允许可选参数以破折号 (-) 开头的最佳方法是什么。我想要一个子命令接受应该是“+42”或“-123”的数字样式参数。所以从命令行我可以做到:

gliapp show -123

目前这会导致错误,因为 gli 认为 -123 是未知开关。 我知道有人可以做到

gliapp show -- -123

但我不希望用户解决这个问题。 在将 ARGV 传递给 gli run 之前,我是否必须自己处理 -123?

这是一个最小的例子:

#!/usr/bin/env ruby

require 'gli'
include GLI::App
subcommand_option_handling :normal
arguments :strict

desc 'p given arg which may start with a dash (-)'
arg "number", :optional;
command :show do |c|
  c.action do |global_opts,opts,args|   
    p args.first
  end
end
exit run(ARGV)

【问题讨论】:

  • 请编辑您的问题以包含您目前拥有的代码。

标签: ruby command-line-interface gli-gem


【解决方案1】:

GLI 在幕后使用OptionParser,它会抓取所有以破折号开头的参数。这是非常标准的 UNIX。

您可以像这样使用标志来捕获值:

command :show do |c|
  c.flag :number
  c.action do |global,options,args|
    puts options[:number]
  end
end

然后:

> gliapp show --number=-123
-123

【讨论】:

    猜你喜欢
    • 2018-04-22
    • 2021-05-06
    • 1970-01-01
    • 2012-07-03
    • 2011-05-16
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多