如何在Ruby中使用getoptlong类?
|
我需要在Ruby中使用getoptlong类的帮助。我需要执行命令prog_name.ruby -u -i -s filename。到目前为止,我只能使用prog_name.ruby -u filename -i filename -s filename执行它。
这是我的getoptlong代码:
require \'getoptlong\'
class CommonLog
parser = GetoptLong.new
parser.set_options([\"-h\", \"--help\", GetoptLong::NO_ARGUMENT],
[\"-u\", \"--url\", GetoptLong::NO_ARGUMENT],
[\"-i\", \"--ip\", GetoptLong::NO_ARGUMENT],
[\"-s\", \"--stat\", GetoptLong::NO_ARGUMENT])
begin
begin
opt,arg = parser.get_option
break if not opt
case opt
when \"-h\" || \"--help\"
puts \"Usage: -u filename\"
puts \"Usage: -i filename\"
puts \"Usage: -s filename\"
exit
when \"-u\" || \"--url\"
log = CommonLog.new(ARGV[0])
log.urlReport
when \"-i\" || \"--ip\"
log = CommonLog.new(ARGV[0])
log.ipReport
when \"-s\" || \"--stat\"
log = CommonLog.new(ARGV[0])
log.statReport
end
rescue => err
puts \"#{err.class()}: #{err.message}\"
puts \"Usage: -h -u -i -s filename\"
exit
end
end while 1
if ARGV[0] == nil || ARGV.size != 1
puts \"invalid! option and filename required\"
puts \"usage: -h -u -i -s filename\"
end
没有找到相关结果
已邀请:
2 个回复
响摔衅幸
,否则可以使用
。 GetOptLong功能非常强大,但是,尽管我已经使用了几次,但每次仍然需要审阅文档。 如果您想要更多的功能,并且使用接口比GetOptLong更容易使用,请查看Ruby的ѭ4。您需要更好地制定逻辑,但这是转换代码的快速通道。我不得不为CommonLog gem设置一个类,因为我不使用它。重要的事情遵循从
提取日志的行:
另外,作为一种快速的批评,您不是在编写惯用的Ruby代码: 可以写7ѭ陈述:
盘绕了。研究ARGV和阵列的工作原理。通常,对于
为零,将不再有参数,因此
就足够了。
降女陷费券