隐藏YARD的方法(正确的方法)

Phr*_*ogz 7 ruby yard

我正在使用YARD来记录我的一个Ruby项目.我有我不希望包含在文档中的某些方法,像#inspect#to_s你期望存在,并返回一个合理的结果.

可以使用@private标记和yardoc --no-private命令行选项隐藏这些方法:

# @private let's not document this
def inspect; ...; end
Run Code Online (Sandbox Code Playgroud)

然而,YARD文件@private明确指出:

注意:建议不要使用此方法隐藏未记录或"不重要"的方法.当Ruby可见性规则不能这样做时,此标记应仅用于标记私有对象.

如果我使用@api private,YARD(很好)用文档中的徽章标记方法,但仍然显示它们.

有没有"合法"的方法来隐藏YARD输出的方法?

Gab*_*iel 8

从我的有限测试中,我注意到以下工作正常(并且在文档中没有明确的注释以避免您的用例):

# @!visibility private
def inspect; ...; end
Run Code Online (Sandbox Code Playgroud)

根据院子文件:

@!能见度公众| 受保护 私人的

修改当前解析可见性(公共,受保护或私有).

希望有所帮助.

  • 这与标记每个成员`@private` 相同,因此适用相同的注释。Yard 的作者只是不喜欢改变文档可见性的想法,因为他认为它被滥用了。 (2认同)