设计红宝石
问题描述:
一个可扩展的命令行界面,我有以下的任务,我想做的事:设计红宝石
- 设计基本算法来分析日志文件(请不要质疑)。
- 通过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.dmp
和ruby overview.rb -f log.log -d dump.dmp
但我怎么能添加到脚本overview.rb
不知道的脚本ana.rb
一些选项?那么如何让 ruby overview.rb -f log.log -f tree
不复制读取命令行选项的代码呢?
我正在安装指挥官。可以肯定的是:我目前的命令行界面设计如何改变,以及如何更容易地扩展?我的目标是使用另一个文件的命令行界面并将其展开(不复制它)。 – mliebelt 2010-08-08 13:04:03