2010-08-07 160 views
1

一个可扩展的命令行界面,我有以下的任务,我想做的事:设计红宝石

  • 设计基本算法来分析日志文件(请不要质疑)。
  • 通过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不复制读取命令行选项的代码呢?

回答

0

您可能想检查commander宝石。

+0

我正在安装指挥官。可以肯定的是:我目前的命令行界面设计如何改变,以及如何更容易地扩展?我的目标是使用另一个文件的命令行界面并将其展开(不复制它)。 – mliebelt 2010-08-08 13:04:03