在ruby中设计可扩展的命令行界面

时间:2010-08-07 13:17:00

标签: ruby

我有以下任务要做:

  • 设计基本算法来分析日志文件(请不要质疑)。
  • 通过OptionParser提供一些选项,以允许调用变化。
  • 使用原始脚本扩展基本算法。

现在的问题是:扩展功能以及使用和扩展命令行界面的最佳方法是什么?

目前的实施是:

ana.rb

class PerfAnalyser
  def self.options(args)
    ...
    PerfAnalyser.new(options).analyze
  end
  def analyse
    # Do base analysis here
  end
end
if __FILE__ == $0
  pa= PerfAnalyzer.options(ARGV)
  pa.print_out
end

overview.rb

def overview(args)
  pa = PerfAnalyzer.options(args)
  pa.overview
end
class PerfAnalyzer
  def overview
    ...
  end
end
if __FILE__ == $0
  overview(ARGV)
end

所以我可以致电: ruby ana.rb -f log.log -d dump.dmpruby overview.rb -f log.log -d dump.dmp

但是我如何向脚本overview.rb添加一些脚本ana.rb未知的选项?那么如何允许 ruby overview.rb -f log.log -f tree没有复制用于读取命令行选项的代码?

1 个答案:

答案 0 :(得分:0)

您可能想查看commander gem。