Где документация для разбора Ruby OptionParser! метод? - PullRequest
1 голос
/ 15 августа 2011

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

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

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

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

1 Ответ

1 голос
/ 15 августа 2011

Я использую 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 на основе того, что находится в исходном коде, поэтому, как правило, недостающая информация является ошибкой автора кода.

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

...