저는 이것에 정말 새로운데, 저는 YARD docs을 겪어 왔고, 제 문제에 대한 해결책을 찾아 내지 못했습니다.YARD 필터를 사용하여 클래스의 태그를 검색하려면 어떻게해야합니까?
다음은 내가 시작하는 코드입니다. https://github.com/spape/yard-rest-plugin 잘 작동하지만 일부 기능을 추가하려고합니다.
기본적으로 필자는 컨트롤러 API 문서를보고있는 사람들이 사용할 수있는 모델의 특성을 볼 수 있도록 일부 모델 설명서를 포함 할 수 있도록 필터를 추가하려고합니다.
플러그인, yard-rest는 @resource
태그가없는 모든 메소드를 걸러냅니다. 그래서, 내 모델에 API 문서의 특정 정보를 표시하고자하는 @resource_object
태그를 추가한다고 생각했습니다.
플러그인 코드에서. 나는 /lib/yard-rest.rb
YARD::Templates::Template.extra_includes << RestFilters
에서 찾을 수 있으며, 해당 파일에, 나는 reject_without_resource(list)
방법
def reject_without_resource(list)
if list
list.delete_if { |object|
if !object.is_a?(YARD::CodeObjects::ClassObject)
true
else
!object.meths.detect{ |x| x.has_tag?(:resource) }# and
# !object.detect{ |x| x.has_tag?(:resource_object) }
end
}
end
end
목적은 우리가 관심 경우에 YARD::CodeObjects::ClassObject
입니다 수정했습니다. object.meths
은 메소드 배열 (Method Objects)입니다. 메소드 객체에는 메소드가 있는지 여부를 테스트 할 수있는 detect 메소드가 있습니다.이 태그는 .has_tag?
호출을 통해 테스트하려는 태그를가집니다. 그러나 나는 수업 수준과 비슷한 것을 찾을 수 없었다. 지금 당장은 API Docs 모델의 메소드를 문서화하고 싶지 않기 때문에 @resource 태그를 모든 모델 메소드에 넣고 싶지는 않습니다.
나의 현재 .yardopts 내가 실제로 모델과 컨트롤러를 통해 검색하고 있음을 보여주고, 파일 :
그래서--title "My API Documentation"
--plugin rest
--readme API_README
app/models/*.rb
app/controllers/*.rb
, 내가 모델을 포함 할 수 있도록 필터를 변경 어떻게? 아니면 최소한 클래스 수준의 태그입니까?