Ruby:OptionParser:String Arg&Hash Assignment
发布时间:2020-12-17 04:03:33 所属栏目:百科 来源:网络整理
导读:使用OptionParser进行字符串参数输入和哈希分配.读取单个参数的多个变量的最佳方法是什么?我如何将这些分配给哈希引用?这是我到目前为止: large_skus = Hash.newsmall_skus = Hash.newOptionParser.new do |opts|opts.on("-b","--brands bName1,bName2,bN
使用OptionParser进行字符串参数输入和哈希分配.读取单个参数的多个变量的最佳方法是什么?我如何将这些分配给哈希引用?这是我到目前为止:
large_skus = Hash.new small_skus = Hash.new OptionParser.new do |opts| opts.on("-b","--brands bName1,bName2,bNameN",String,"Check specific brands by name") do |b| options[:brands] = b.split(",") end opts.on("-l","--large lSku1,lSku2,lSkuN","Large SKUs - List CSVs") do |l| options[:large_skus] = l.split(",") ##For each sku given brandName = options[:brands] large_skus[brandName] = l[$sku].to_i ## end opts.on("-s","--small sSku1,sSku2,sSkuN","Small SKUs - List CSVs") do |s| options[:small_skus] = s.split(",") ##For each sku given brandName = options[:brands] small_skus[brandName] = s[$sku].to_i ## end end.parse!(ARGV) 解决方法
给出一个输入:
ruby test.rb --brands bName1,bNameN --large lSku1,lSkuN --small wQueue1,wQueue2,wQueueN 这段代码 #!/usr/bin/env ruby require 'ap' require 'optparse' options = {} OptionParser.new do |opts| opts.on("-b",Array,"Check specific brands by name") do |b| options[:brands] = b end opts.on("-l","Large SKUs - List CSVs") do |l| options[:large_skus] = l end opts.on("-s","--small wQueue1,wQueueN","Small SKUs - List CSVs") do |s| options[:small_skus] = s end end.parse!(ARGV) ap options 生成此输出: { :brands => [ [0] "bName1",[1] "bName2",[2] "bNameN" ],:large_skus => [ [0] "lSku1",[1] "lSku2",[2] "lSkuN" ],:small_skus => [ [0] "wQueue1",[1] "wQueue2",[2] "wQueueN" ] } 请注意,我没有使用每个选项的String类型,而是使用Array.这让OptionParser可以将元素解析成数组.从那时起,由你决定使用数组元素. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |