루비 코드를 문서화하는 방법?


201

루비 코드를 문서화 할 때 특정 코드 규칙이 있습니까? 예를 들어 다음 코드 스 니펫이 있습니다.

require 'open3'

module ProcessUtils

  # Runs a subprocess and applies handlers for stdout and stderr
  # Params:
  # - command: command line string to be executed by the system
  # - outhandler: proc object that takes a pipe object as first and only param (may be nil)
  # - errhandler: proc object that takes a pipe object as first and only param (may be nil)
  def execute_and_handle(command, outhandler, errhandler)
    Open3.popen3(command) do |_, stdout, stderr|
      if (outhandler)
        outhandler.call(stdout)
      end
      if (errhandler)
        errhandler.call(stderr)
      end
    end
  end
end

이것은 괜찮지 만, 더 나은 / 우수한 문서 관행이 있을까요?


shop.oreilly.com/product/9780596516178.do 는 소스 코드에 좋은 예가 있습니다. 2 장 목록을보십시오. 여기에 답이 있습니다. 소스 코드를 보여주기 위해 rdoc과 함께 연주했습니다. 파일 확장자를 my_code.rb에서 my_code.rb.txt로 만든 다음 rdoc를 실행할 수 있습니다. > rdoc my_code.rb.txt는 rdoc이 HTML을 렌더링하기 때문에 클래스와 모듈에 대해서는 중요하지 않습니다. 그것으로 재미있게 보내십시오.
Douglas G. Allen

답변:


198

RDoc 프로세서의 설명서를 대상으로해야합니다.이 설명서는 설명서를 찾아서 HTML을 생성 할 수 있습니다. 주석을 올바른 위치에 배치했지만 RDoc이 형식을 지정하는 방법을 알고있는 태그 종류에 대해 알아 보려면 RDoc 설명서 를 참조해야합니다. 이를 위해 다음과 같이 의견을 다시 작성합니다.

  # Runs a subprocess and applies handlers for stdout and stderr
  # Params:
  # +command+:: command line string to be executed by the system
  # +outhandler+:: +Proc+ object that takes a pipe object as first and only param (may be nil)
  # +errhandler+:: +Proc+ object that takes a pipe object as first and only param (may be nil)

outhandler 및 errhandler 매개 변수가 0이 아님을 어떻게 문서화해야합니까?
StackedCrooked 2009

10
YARD의 주석은 더 강력 할 수 있지만 RDoc 대신 표준 Ruby 배포에 포함될 때까지 주석은 표준이 아닙니다.
Ken Bloom

다음 RDoc 연결이 시도 고장 github.com/ruby/rdoc을 . 모든 사람이 해당 링크에 만족하면 답변을 수정하도록 요청합니다.
Jordan Stewart

27

RDoc 사용 을 적극 권장 합니다. 거의 표준입니다. 코드 주석을 쉽게 읽을 수 있으며 프로젝트에 대한 웹 기반 문서를 쉽게 만들 수 있습니다.


24

명시된 바와 같이 RDoc을 알게 될 것을 제안합니다. 그러나 인기있는 YARD A Ruby Document 도구도 무시하지 마십시오 . Ruby 용으로 온라인에서 볼 수있는 많은 문서는 Yard를 사용합니다. RVM은 Yard를 알고 있으며 사용 가능한 경우 시스템에서 문서를 생성하는 데 사용합니다.

Yard가 사용하므로 RDoc은 여전히 ​​필요합니다.


1
주로 C ++, Java, Scala 및 PHP를 사용했기 때문에 @tag표기법이 매우 익숙하다는 것을 알았습니다 .
doub1ejack

1
4 년이 지났고 YARD는 크게 발전했습니다. YARD가 아직 Ruby에 포함되어 있지 않은 것은 유감입니다. (YARD 홈페이지에서 HTTPS를 허용하는 방식으로)
Franklin Yu

1
YARD는 RDoc보다 가벼운 것 같습니다! 감사합니다 :)
콘스탄틴 드 라 로슈


9

TomDoc for Ruby-버전 1.0.0-rc1을 확인할 수도 있습니다.

http://tomdoc.org/


FWIW, 이것은 GitHub 스타일 가이드 -github.com/styleguide/ruby에
Michael Easter

고마워, tomdoc은 루비 코드를 문서화 할 때 모범 사례에 대한 좋은 소스 인 것 같습니다. rdoc 문서에서 누락 된 "방법"및 "왜"에 대한 답변입니다.
Michael Renner

TomDoc은 최신 상태로 유지되지 않았습니다. 마지막 커밋은 2012 년 5 월입니다.
maasha

1
@maasha 2017 년까지 일반 RDoc 이외의 가장 좋은 방법은 YARD 일 것이라고 생각합니다. 이제 내용을 구문 분석하고 클래스와 메소드에 멋진 하이퍼 링크를 만듭니다.
Franklin Yu

2

표준은 RDoc 이며 게시 한 것과 매우 유사합니다.

내가 보낸 링크의 샘플 섹션을 참조하십시오


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.