2016-09-01 8 views
3

저는 현재 보석 및 문서 작성을 위해 노력하고 있습니다. 저는 현재 몇 가지 방법을 다음과 같이 defined_method를 사용하여 정의 한 클래스가 :YARD를 사용하여 메타 프로그래밍으로 작성된 문서화 방법

class Client 
    ['one', 'two'].each do |method_name| 
    # Sets the value 
    # @param argument the argument to set. 
    define_method("set_#{method_name}") do |argument| 
     # Method content 
    end 
    end 
end 

내가 YARD를 사용하여 이러한 방법을 문서화하려고하지만, 프로젝트의 문서를 생성 할 때, 방법은 클래스에 표시되지 않습니다 논제 해요 선적 서류 비치.

아무도 내가 이것을 문서화 할 수있는 방법을 알고 있습니까? 내가 놓친 게 있니?

class << self 
    private 
    # @macro [attach] container.increment 
    # @method $1() 
    # Increment the $1 container. 
    def make(name) 
     define_method(name) { container.send(name).increment } 
    end 
    end 

    make :lion 
    make :pigeon 
end 

희망 :

+0

야드 전문가가 아니지만 자신의 문서를 보면서 나는 자유 형식의 의견을 쓰는 것 이외의 다른 방법이 있다고 생각하지 않습니다. 게다가, 만약 그 방법이 정말로 동적이라면, 당신은 그것들을 정확하게 문서화 할 수 없을 것입니다. 'one'과'two' 메쏘드를 문서화하고 싶다면, 그들 만의 메서드를 만드십시오. 필요한 경우'define_method'를 저장하십시오. –

+0

실제 방법은 위의 예와 정확히 일치하지 않지만 자유형 설명에 대한 요점을 보았습니다. – Aliou

답변

1

대신 임의의 목록이 반복되는, 당신은 클래스의 DSL 스타일의 호출을 문서화 할 수있는 클래스 메소드로 동적 거동을 포장하여 방법을 정의하는 매크로를 사용 일반적으로 것 그것은 당신을 위해 작동합니다.

+0

시도해보십시오. 고맙습니다 – Aliou