2013-05-18 4 views
2

보석과 함께 제공되는 템플릿 (기본 HTML 출력기 만 찾을 수 있음)을 찾았습니다. 도움말 및 온라인 문서에서 STDOUT으로 리디렉션되는 스위치를 검색했습니다. 내가이 문제에 어떻게 접근 할 수 있는지에 대해서는 아무 것도 찾을 수 없다.Yardoc을 STDOUT으로 출력하는 방법은 무엇입니까?

쉬운 방법이 있을까요? (쉘 명령일까요?) 아니면 소스 코드를 살펴 보았습니까?

+0

왜 이런 종류의 기능이 필요합니까? – luacassus

+0

설명서를 디스크에 쓰지 않으려 고하십니까? 또는 생성 된 문서를 콘솔에서 보려고합니까? – davogones

+0

@ davogones 왜냐하면 ... @luacassus 저는 콘솔 앱을 작성하고 있습니다. 문서를 복제하는 대신 yardocs를 작성하고'help'를 호출 할 때 특정 태그를 출력 할 수 있습니다. – iain

답변

2
  • test.rb로 다음 파일을 만듭니다

    # This class is cool 
    class Test 
        # This method is also cool 
        def foo 
        end 
    end 
    
  • 당신 출력 할 수 있습니다이 전에 마당 문서를 컴파일해야합니다. 그러나 doc 폴더를 원하지 않으십니까? 그래서 그것을 생략합시다.

    yardoc --no-output test.rb 
    

    이렇게하면 .yardoc 폴더 안의 설명서 만 업데이트됩니다. doc 폴더는 생성되지 않습니다.

  • 지금 당신은 몇 가지 방법으로 특정 개체에 대한 문서를 볼 수 있습니다

    > yard display "Test" 
    # Outputs: 
    ------------------------------------------ Class: Foo < Object 
    
        This class is cool 
    
    
    
    -------------------------------------------------------------- 
    
    > yard display "Test#foo" 
    # Outputs: 
    ------------------------------------------ Method: #meth (Foo) 
                  (Defined in: foo.rb) 
    
        foo.meth -> Object 
    -------------------------------------------------------------- 
    
        This method is cool 
    

    이것은 당신이 얻을 출력입니다. yard display 명령을 사용하여 모든 클래스/메소드에 대한 문서를 얻을 수 있습니다.

  • 하지만 출력이 엉망입니다. 템플릿을 만들어 봅시다. 몇 개의 파일로 다음 templates 폴더를 만듭니다 :

    + your app 
        + templates 
        + default 
         + class 
         | + text 
         | + setup.rb 
         |  def init 
         |   super 
         |   sections T('docstring') 
         |  end 
         + method 
         | + text 
         | + setup.rb 
         |  def init 
         |   super 
         |   sections T('docstring') 
         |  end 
         + method_details 
         | + text 
         | + setup.rb 
         |  def init 
         |   super 
         |   sections T('docstring') 
         |  end 
    

    모든 setup.rb 파일 def init, super, sections T('docstring'), end을 같이 동일한 콘텐츠를 가지고 있어야합니다. 이렇게하면 text 출력이 멋진 헤더 및 내용없이 설명서 만 표시됩니다.

  • 이제 그냥 같은 yard display 명령을 실행하지만, 이제 우리의 사용자 정의 템플릿을 사용하자 : 그것 뿐이다

    > yard display Foo --template-path ./templates 
    
    This class is cool 
    
    > yard display "Foo#meth" --template-path ./templates 
    
    This method is cool 
    
  • 합니다. yard doc에 출력에서 ​​줄 바꿈/후행 줄이 너무 많을 수 있으므로 다른 표준 Linux head/tail 명령을 사용하여 수정할 수 있습니다.

+0

이 답변으로 시간을내어 주셔서 감사합니다. 나는 끝내고있는 뭔가를 누른 다음 나는 기술 만남 (나는 지금 당장 밖에 나가기를 힘쓴다. :) 그래서 나는 내일까지 이것을 시도 할 기회를 얻지 못할 것이다. 그러나 나는 너를 알고있다. 매우 감사. – iain

+0

환영합니다 @iain, 그리고 같은 것을 업데이트 해 주셔서 감사합니다. – Subhas

+0

이것은 정말 도움이되는 답변입니다. 나는'display' 명령에 대해 전혀 몰랐습니다. 데이터베이스가 메모리에만 있으면 좋을 것입니다. 나는 실제로 다른 이유로 라이브러리를 해킹하기 시작 했으므로 내가 내 꿈을 이룰 수 있는지 알 겠어! 고마워, 많이 감사하겠습니다. – iain

관련 문제