2011-09-28 3 views
5

YARD를 사용하여 프로젝트를 문서화하고 있습니다. YARD는YARD : attr_accessor와 같은 문서 사용자 정의 getter/setter 쌍

attr_accessor :some_attribute 

섹션을 "인스턴스 속성 요약"섹션으로 만든 속성을 문서화합니다. 지금은 다른 속성을 가지고 있지만, 사용자 정의 세터와 게터와

def some_other_attribute 
    ... 
end 

def some_other_attribute= value 
    ... 
end 

그래서 기본적으로 내 질문에, 난 마당 바로 앞의 경우에 attr_accessor 및 목록 some_other_attribute 내에서 같은 세터/게터의 쌍을 문서로 얻을 수있는 방법 "인스턴스 속성 요약"?

답변

5

0.8에서 (현재 시험판에 있음) @!attribute 지시문은 객체가 속성임을 나타 내기 위해 권장되는 방법입니다. 이 지침에 찬성하여 @attr_* 태그가 사용되지 않습니다. 당신은 또한 (0.8.0+에서) 할 수있는 :

# @!parse attr_accessor :some_attribute 

반드시 루비에 의해 실행되지 않는 코드를 분석하기 위해. 이전 0.8에, 당신은 직접 attr_accessor를 추가하고 다음과 같이 세터/게터를 다시 정의 할 수 있습니다 :

class MyClass 
    attr_accessor :foo 
    def foo; something_else end 
    def foo=(v) something_else(v) end 
end 

루비 신경 안,이 방법 재정의에 대해 경고합니다 ruby -w에서 것을 제외하고. 이 버그가 있으면 undef foo, foo=도 추가 할 수 있습니다. (당신이 -w를 신경 쓰는다면) 좀 더 지저분합니다. 그래서 우리는 @!parse@!attribute과 같은 것을 추가했습니다.

+0

어디에서'@! parse attr_accessor : some_attribute'를 정의하겠습니까? – thomthom

1

당신은 클래스에 @attr 태그를 사용할 수 있어야합니다 : 또한 도움이 될 수있는 것보다 (@attr_reader 및 @attr_writer 같은) 다른 태그가 있습니다

# @attr [String] name The name of this object. 
class MyClass 
    def name 
    end 
    def name= 
    end 
end 

.

관련 문제