我在 OptionParser 中有三个标志,但它只允许访问其中两个
I have three flags in OptionParser but it only gives access to two of them
我正在使用 Ruby 构建一个 CLI gem,并且我正在使用 OptionParser 添加带参数的标志。每当使用参数调用一个标志时,就会调用一个函数。
我有三面旗帜。我的问题是,当我 运行 -h
命令查看可用的选项(标志)时,它只显示其中三个(跳过中间一个),即使我尝试使用该标志,(帮助中未列出)它 运行 是最后一个标志的代码。
这是我的标志代码:
def city_weather
options = {}
OptionParser.new do |opts|
opts.banner = "Welcome to El Tiempo! \n Usage: cli [options]"
opts.on('-today', 'Get today\'s weather') do |today|
options[:today] = today
weather_today(ARGV.first)
end
opts.on('-av_max', 'Get this week\'s average maximum temperature') do |av_max|
options[:av_max] = av_max
week_average_max(ARGV.first)
end
opts.on('-av_min', 'Get this week\'s average minimum temperature') do |av_min|
options[:av_min] = av_min
week_average_min(ARGV.first)
end
end.parse!
ARGV.first
end
是-av_max
标志不起作用。
当我 运行 -av_max
执行 week_average_min(ARGV.first)
时。
当我 运行 这里的 -h
命令是它显示的内容:
Welcome to El Tiempo!
Usage: cli [options]
-today Get today's weather
-av_min Get this week's average minimum temperature
我的问题是,OptionParser 是否可以有三个标志?如果是这样,我怎样才能让这个中间公寓发挥作用?
您需要为长参数添加另一个破折号:
opts.on('--av_min', 'Get this week\'s average minimum temperature') do |av_min|
options[:av_min] = av_min
week_average_min(ARGV.first)
end
我正在使用 Ruby 构建一个 CLI gem,并且我正在使用 OptionParser 添加带参数的标志。每当使用参数调用一个标志时,就会调用一个函数。
我有三面旗帜。我的问题是,当我 运行 -h
命令查看可用的选项(标志)时,它只显示其中三个(跳过中间一个),即使我尝试使用该标志,(帮助中未列出)它 运行 是最后一个标志的代码。
这是我的标志代码:
def city_weather
options = {}
OptionParser.new do |opts|
opts.banner = "Welcome to El Tiempo! \n Usage: cli [options]"
opts.on('-today', 'Get today\'s weather') do |today|
options[:today] = today
weather_today(ARGV.first)
end
opts.on('-av_max', 'Get this week\'s average maximum temperature') do |av_max|
options[:av_max] = av_max
week_average_max(ARGV.first)
end
opts.on('-av_min', 'Get this week\'s average minimum temperature') do |av_min|
options[:av_min] = av_min
week_average_min(ARGV.first)
end
end.parse!
ARGV.first
end
是-av_max
标志不起作用。
当我 运行 -av_max
执行 week_average_min(ARGV.first)
时。
当我 运行 这里的 -h
命令是它显示的内容:
Welcome to El Tiempo!
Usage: cli [options]
-today Get today's weather
-av_min Get this week's average minimum temperature
我的问题是,OptionParser 是否可以有三个标志?如果是这样,我怎样才能让这个中间公寓发挥作用?
您需要为长参数添加另一个破折号:
opts.on('--av_min', 'Get this week\'s average minimum temperature') do |av_min|
options[:av_min] = av_min
week_average_min(ARGV.first)
end