Где документация для разбора Ruby OptionParser! метод?

Мне не удалось найти какую-либо документацию для parse!, очень часто используемый метод экземпляра для OptionParser класс из стандартного дистрибутива Ruby.

Я видел parse! используется в примерах в верхней части документации для класса OptionParse. Тем не менее, я ищу документацию, специфичную для этого метода, документацию, которая описывает, что именно метод делает. Например, документация должна, помимо прочего, дать подсказку о том, почему имя метода заканчивается на ура (предположительно, этот метод удаляет параметры из ARGV). Это также может описать, следует ли ожидать, что что-то полезное будет parse! (количество проанализированных опций?).

Я попытался прочитать официальную документацию для OptionParse класс и для всех подклассов, перечисленных в верхней части этого класса. Я также обратился к соответствующему разделу " Программирование на Ruby" ("Книга кирки").

Я не спрашиваю что parse! делает; У меня есть приличное (если несовершенное) чувство этого от чтения других потоков StackOverlow. Я стремлюсь улучшить мою способность разбираться в документации по Ruby. Я больше привык к документации по Perl/CPAN. Когда я имею дело с документацией Ruby, даже для стандартных модулей распространения, я чувствую себя очень растерянным. Как будто кто-то удалил или переместил ключевые биты информации. Иногда я сталкиваюсь с местом, где, как мне кажется, будет документация для ключевого метода, и обнаруживаю, что мне остается просто изучить исходный код для указанного метода. Интересно, возможно, я просто не привык к тому, как организована информация в Ruby. Может быть, это может быть хорошим уроком для меня.

1 ответ

Решение

Я использую http://rubydoc.info/ для большей части моей документации. Документы для OptParse объясняют parse Я довольно ясно подумал:

Разбирает аргументы командной строки argv по порядку, когда установлена ​​переменная окружения POSIXLY_CORRECT, и в противном случае в режиме перестановки.

Если вы проверите ссылку на источник для этого метода, вы увидите, что он реализован с использованием parse!:

def parse(*argv)
  argv = argv[0].dup if argv.size == 1 and Array === argv[0]
  parse!(argv)
end

И глядя на parse! скажу вам еще больше.

Относительно отсутствующих или удаленных фрагментов информации: большинство документов Ruby генерируются RDoc или YARD на основе того, что находится в исходном коде, поэтому, как правило, пропущенная информация является ошибкой автора кода.

Некоторые люди слишком заняты, чтобы правильно документировать, либо полностью игнорируют это, либо не знают, что документировать. Мы, как пользователи кода, можем помочь, отправив изменения в исходный код, который реализует лучшую документацию. Я делал это много раз на разных проектах, когда находил что-то непонятное или неправильное.

Другие вопросы по тегам