【问题标题】:Hiding a method from YARD (the right way)向 YARD 隐藏方法(正确的方法)
【发布时间】:2014-11-19 15:54:38
【问题描述】:

我正在使用YARD 来记录我的一个 Ruby 项目。我有一些我不想包含在文档中的方法,例如 #inspect#to_s,您希望它们存在并返回合理的结果。

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

# @private let's not document this
def inspect; ...; end

但是,@private 上的 YARD documentation 明确指出:

注意:不建议使用此方法隐藏未记录或“不重要”的方法。只有当 Ruby 可见性规则无法做到这一点时,才能使用此标记将对象标记为私有。

如果我改用@api private,YARD(很好地)在文档中用 标记标记方法,但仍会显示它们。

是否有一种“合法”的方式可以从 YARD 输出中隐藏方法?

【问题讨论】:

  • 来自网站:“虽然 YARD 大部分与 RDoc 兼容,但它不支持 RDoc “指令”,例如 :stopdoc: 或 :nodoc:。这有几个原因,但最重要的是它很容易误用:nodoc:,而这种误用通常会导致您的读者错过文档中的重要信息。”我相信你想要做的事情是故意不可能的。

标签: private ruby yard


【解决方案1】:

从我有限的测试中,我注意到以下效果很好(并且没有在文档中有明确的说明以避免您的用例):

# @!visibility private
def inspect; ...; end

根据yard documentation

@!visibility public |受保护 |私人的

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

希望对您有所帮助。

【讨论】:

  • 这与标记每个成员@private 相同,因此同样适用。 Yard 的作者根本不喜欢改变文档可见性的想法,因为他认为它被滥用了。
猜你喜欢
  • 2013-12-08
  • 1970-01-01
  • 2017-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-23
  • 1970-01-01
相关资源
最近更新 更多