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