2009-05-11 2 views
4

Согласно this post, использование RDoc :: в рубине не доступно 1.9. Есть ли хорошие замены?Замена на использование rdoc

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

ответ

4

Мне нравится OptionParser (вещь, указанная в статье, упоминается, что RDoc::usage полезен для дополнения).

Похоже на все 1.9 ошибки have been patched.

2

В feature request 2713, разработчик rdoc заявил, что он не будет добавлять rdoc/использование или любую аналогичную функцию обратно в rdoc, заявив, что вместо этого следует использовать OptionParser.

1

Мы используем 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