Разработка расширяемого интерфейса командной строки в ruby - PullRequest
1 голос
/ 07 августа 2010

У меня есть следующая задача, которую я хочу выполнить:

  • Разработка базового алгоритма для анализа файлов журналов (пожалуйста, не задавайте вопросов).
  • Предоставьте некоторые опции через 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 без копирования кода для чтения параметров командной строки?

1 Ответ

0 голосов
/ 08 августа 2010

Возможно, вы захотите проверить командир драгоценный камень.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...