Согласно this post, использование RDoc :: в рубине не доступно 1.9. Есть ли хорошие замены?Замена на использование rdoc
Мне было бы интересно узнать, что доступно от стандартной установки, а также от того, что доступно от драгоценных камней.
Согласно this post, использование RDoc :: в рубине не доступно 1.9. Есть ли хорошие замены?Замена на использование rdoc
Мне было бы интересно узнать, что доступно от стандартной установки, а также от того, что доступно от драгоценных камней.
Мне нравится OptionParser (вещь, указанная в статье, упоминается, что RDoc::usage
полезен для дополнения).
Похоже на все 1.9 ошибки have been patched.
В feature request 2713, разработчик rdoc заявил, что он не будет добавлять rdoc/использование или любую аналогичную функцию обратно в rdoc, заявив, что вместо этого следует использовать OptionParser.
Мы используем OptionParser для всех новых скриптов, но имели около 100+, которые использовали RDoc. Вместо того, чтобы переписывать каждый из них, я написал этот метод (BB - пространство имен нашей компании, измените это на все, что вам нравится). Он отлично работает. Синтаксис немного отличается, но его текст помогает, поэтому мы не против. Надеюсь, поможет!
Затем я использовал sed, чтобы найти все сценарии и изменить их.
grep -rl "RDoc::usage" * | xargs sed -i "/rdoc\/usage/ s/RDoc/BB/"
grep -rl "BB::usage" * | xargs sed -i "/rdoc\/usage/ s/rdoc/lib\/bb/"
-
module BB
def BB::usage(exit_code)
File::open($0, 'r').readlines.each_with_index do | line, idx |
next if idx == 0
if(line =~ /^#/)
puts line.gsub(/^#\ ?/,'')
else
puts #RDoc adds extra line so we do too
exit(exit_code)
end
end
end
end