Class | RuCodeGen::CmdLineHandler |
In: |
lib/rucodegen/cmd_line_handler.rb
|
Parent: | Object |
Класс, отвечающий за хранение всех специфических для генераторов OptionHandler и за разбор командной строки.
# File lib/rucodegen/cmd_line_handler.rb, line 110 def initialize # Значение будет определено только после успешного # завершения метода parse. @options = nil # В список обработчиков сразу же добавляется штатный обработчик. @handlers = [ RuCodeGenOptionHandler.new ] end
Обавление очередного специфического обработчика.
# File lib/rucodegen/cmd_line_handler.rb, line 120 def add_option_handler( handler ) @handlers << handler end
Доступ к разобранным опциям.
Порождается исключение, если успешного разбора еще не было.
# File lib/rucodegen/cmd_line_handler.rb, line 128 def options fail "Options are not parsed yet" unless @options @options end
Выполнение разбора командной строки.
# File lib/rucodegen/cmd_line_handler.rb, line 135 def parse( args ) result = OpenStruct.new parser = OptionParser.new parser.banner = make_banner @handlers.each do |h| h.setup( parser, result ) end parser.on_tail( "-h", "--help", "show this screen" ) do puts parser exit end parser.parse!( args ) @handlers.each do |h| h.check( result ) end @options = result end