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

Базовый класс для парсинга специфических для какого-либо генератора опций командной строки.

Пример создания и использования:

      class MyOptionHandler < RuCodeGen::OptionHandler
              def banner
                      "My super cool generator v.1.0.23-beta3"
              end

              def setup( parser, result )
                      parser.on( "-C", "--cool OPTION", "cool generator option" ) do |p|
                              result.cool_option = p
                      end
              end

              def check( result )
                      fail "Cool generator must be activated by --cool" unless result.cool_option
              end
      end

Примечание. Методы OptionHandler#banner и OptionHandler#check являются необязательными и имеют реализацию по умолчанию. Предоставлять их можно только в случае необходимости.

Methods

banner   check   setup  

Public Instance methods

Дополнительный баннер, который будет отображаться при выдачи справки о доступных опциях командной строки.

Должен возвращать nil, если баннер не требуется.

[Source]

# File lib/rucodegen/cmd_line_handler.rb, line 42
        def banner
                nil
        end

Проверка корректности значений разобранных опций, специфических для конкретного генератора.

Если дополнительная проверка не нужна, то данный метод может не переопределяться.

result
объект типа OpenStruct, в который помещались результаты разбора аргументов командной строки.

[Source]

# File lib/rucodegen/cmd_line_handler.rb, line 66
        def check( result )
        end

Настройка парсера опций командной строки на специфические для генератора опции.

parser
объект типа OptionParser, выполняющий разбор командной строки.
result
объект типа OpenStruct, в который должны помещаться результаты разбора аргументов командной строки.

[Source]

# File lib/rucodegen/cmd_line_handler.rb, line 53
        def setup( parser, result )
                fail "OptionHandler#setup must be defined in derived class"
        end

[Validate]

Hosted by uCoz