Class RuCodeGen::CmdLineHandler
In: lib/rucodegen/cmd_line_handler.rb
Parent: Object

Класс, отвечающий за хранение всех специфических для генераторов OptionHandler и за разбор командной строки.

Methods

Public Class methods

[Source]

# File lib/rucodegen/cmd_line_handler.rb, line 110
        def initialize
                # Значение будет определено только после успешного
                # завершения метода parse.
                @options = nil

                # В список обработчиков сразу же добавляется штатный обработчик.
                @handlers = [ RuCodeGenOptionHandler.new ]
        end

Public Instance methods

Обавление очередного специфического обработчика.

[Source]

# File lib/rucodegen/cmd_line_handler.rb, line 120
        def add_option_handler( handler )
                @handlers << handler
        end

Доступ к разобранным опциям.

Порождается исключение, если успешного разбора еще не было.

[Source]

# File lib/rucodegen/cmd_line_handler.rb, line 128
        def options
                fail "Options are not parsed yet" unless @options
                @options
        end

Выполнение разбора командной строки.

[Source]

# 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

[Validate]

Hosted by uCoz