我有一个使用Forwardable模块中的def_delegators
方法的类.我还没有办法让Yardoc为它输出文档.我尝试过使用宏但它不会为这些特定方法输出任何内容(文件中的其他内容都很好,并且没有错误),而且我有几个不同的长度.def_delegators
例如
class A
extend Forwardable
# other code…
# @!macro
# @see Array#$1
# @see Array#$2
# @see Array#$3
def_delegators :@xs, :size, :<<, :blah # …
Run Code Online (Sandbox Code Playgroud)
如果有人知道宝石或这样做的方式,这意味着我可以避免尝试写Yard扩展来做到这一点,我将非常感激.
我有一个函数,它接受可变数量的参数,如下所示:
def myfun(*args)
# ...
end
Run Code Online (Sandbox Code Playgroud)
所有args都是相同的类型(Symbol
),所以现在我记录函数就像只有一个参数,说它可能需要多个,例如:
# this function doesn’t do anything
# @param [Symbol]: this argument does something, you can add more symbols
# if you want
def myfun(*args)
# ...
end
Run Code Online (Sandbox Code Playgroud)
是否有内置的方法来处理这种情况?
我有一个记录如下的函数:
##
# Searches for street names in the local address database. Returns a list
# of strings, or invokes the block for each result.
#
# @param [String, Hash] query
#
# Can be:
#
# - A search string with optinal wildcards. Examples:
# - "Bærumsv*"
# - "Fornebuve_en"
#
# @param [Integer] limit
#
# Limits the amount of results. See {#search_street_addresses} for usage
# examples.
#
# @return [Array<String>]
#
# A sorted array of street …
Run Code Online (Sandbox Code Playgroud) 我正在使用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输出的方法?
有没有办法评论define_method
在YardDoc中定义的方法?
我试过这个:
%w(one two three).each do |type|
# The #{type} way
# @return [String] the #{type} way
define_method("#{type}_way") do ... end
end
Run Code Online (Sandbox Code Playgroud)
但是,不幸的是,没有工作.
我有一个类似于这样的ActiveRecord类:
class User < ActiveRecord::Base
# How do I document this?
enum status [:registering, :active, :suspended, :deleted]
end
Run Code Online (Sandbox Code Playgroud)
status
attribute用于构建状态机.如何使用码文件记录该行代码?文档需要包含status
属性的解释及其所有可能的状态.
我正在用院子来生成我项目的文件.即使认为文档可以生成,因此不需要进行版本化,我们决定这样做,因为它可以更容易地看到代码(注释)在实际文档中的变化的影响.
问题是每个时间段生成文档,它会更改每个文件开头的日期,导致所有文件被视为已更改.
有没有办法告诉git忽略那些行来检测文件是否已经改变,或者是一种方法来配置码不重新生成文件,如果它们是相同的?
谢谢
我知道我可以做一个脚本或其他什么,如果只有日期改变了,它会清理文件.所以我的问题是有一种Git方法可以做.我应该阅读有关diff驱动程序的内容,还是应该使用干净的脚本.
如果我要走向清理路径,那么使用git hook或将其集成到doc生成中会更好.
最终,我对跟踪由于生成的doc中的特定提交而导致的更改的任何其他方式感兴趣.
我还没有真正解释我的问题是什么(以及为什么我要尝试编写不需要的东西)所以我们去了.
有时,代码中的一点修改搞砸了文档,因此我将能够看到提交对文档的影响.
示例:我使用modeline for vim(文件第一行的注释告诉vim不同的信息)
知道我有一个包含模块文档的文件
#vi: my vim setting
# Documentation of module A
module A
.... some code
end
Run Code Online (Sandbox Code Playgroud)
在其他地方我使用这个模块
#vi : my vim setting
( 2 blank lines)
module A
.... some different code
end
Run Code Online (Sandbox Code Playgroud)
那时,一切都很好,A的文档就是Documentation of module A
.但是如果某个人(像我一样)删除了最后一个文件中的空白行并且只留下一行(是的,我在模式行和代码之间放了2个空行),那么院子认为模式行是模块A的文档vi : my vim setting
.
问题是,除了查看每一页之外,没有办法检测到文档被搞砸了.使用git,我可以快速查看并检查更改的内容,甚至可以找到什么时候(这很重要,因为那时我可以弄清楚它为什么会发生变化).
我有一些看起来像这样的Ruby代码:
# some_string = "{really?}"
Run Code Online (Sandbox Code Playgroud)
花括号需要成为字符串的一部分.这行是注释掉的代码,我想留在那里.我另外使用YARD来记录代码,所以当我运行yard doc
它时(自然地)抛出一个关于无法链接"真的"的警告.
有没有办法告诉YARD忽略注释掉的代码?
我需要更改Yard生成的 HTML 文档的结构;与默认 HTML 模板没有太多共同之处。
据我了解,解决方案是创建一个新的 YARD 模板,但我在创建模板时遇到了问题。该YARD文档和上定制关于这一主题旧的博客文章似乎更倾向于让已经存在的模板为目标。
我希望有人可以帮助我提供一些关于创建全新 YARD 模板的参考或示例。