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.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