2010-08-07 220 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