我真的很陌生,我一直在閱讀YARD docs,並沒有真正能夠找出解決我的問題的方法。如何使用YARD過濾器檢索課程上的標籤?
這是我開始的代碼:https://github.com/spape/yard-rest-plugin這很好,但我想添加一些功能。
基本上,我試圖添加一個過濾器,以便我可以包含一些Model文檔,以便通過Controller API文檔查看的人員可以查看他們可以使用的模型的哪些屬性。
該插件中,yard-rest過濾掉沒有@resource
標籤的任何方法。所以,我想,我會爲我的模型添加一個@resource_object
標記,以便在API文檔中顯示某些信息。
在插件的代碼中。我在/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)。並且方法對象具有檢測方法,該方法允許通過調用.has_tag?
來測試方法是否具有我們想要測試的任何標籤。但是,我一直無法爲課堂級別找到類似的東西。現在,因爲我不想記錄API Docs模型中的任何方法,所以我不想將@resource標記放在任何模型方法上。
我目前.yardopts文件,證明我確實想要搜索模型和控制器:
--title "My API Documentation"
--plugin rest
--readme API_README
app/models/*.rb
app/controllers/*.rb
所以,我該如何更換過濾器,這樣我可以包括模型?或者至少是級別級別的標籤?