问题描述
我正在使用红宝石中的Slop来解析输入参数:
slop_opts = Slop.parse(ARGV.map(&:strip)) do |o|
o.string '--test1','explain test1'
o.string '--test2','explain test2'
o.on '--help' do
puts o
exit
end
end
slop_opts.to_hash
我需要test2
包括几个选项:
例如
ruby this_script.rb --test1 one_arg --test2 first_arg second_arg
我的一个约束是我需要first_arg和second_arg作为2个不同的输入,所以我不能仅仅从,
(或类似的)上分割first_arg,second_arg
这样的输入字符串来获取它们。
谢谢您的帮助!
解决方法
将--test2
设为Array argument。将定界符设置为nil
以禁用拆分输入。
slop_opts = Slop.parse(ARGV.map(&:strip)) do |o|
o.string '--test1','explain test1'
o.array '--test2','explain test2',delimiter: nil
o.on '--help' do
puts o
exit
end
end
然后每个输入都有自己的--test2
。
ruby this_script.rb --test1 one_arg --test2 first_arg --test2 second_arg