我正在尝试在我的 YARD 文档中创建一些链接。我可以得到一个 HTTP 链接:
# I like {http://stackoverflow.com Stackoverflow}
Run Code Online (Sandbox Code Playgroud)
呈现为
<p>I like <a href="http://stackoverflow.com">Stackoverflow</a></p>
Run Code Online (Sandbox Code Playgroud)
但是一个电子邮件链接:
# You can email the {mailto:bugs@myproject.com bugs} list
Run Code Online (Sandbox Code Playgroud)
给我一个警告:
[warn]: In file `':: Cannot resolve link to mailto:bugs@myprojectmailto:bugs@myproject.com from text:
Run Code Online (Sandbox Code Playgroud)
并呈现为
<p>You can email the <tt>bugs</tt> list</p>
Run Code Online (Sandbox Code Playgroud)
我已经尝试过链接的常规 RDoc 语法:
bugs[mailto:bugs@myproject.com]
Run Code Online (Sandbox Code Playgroud)
但 YARD 似乎忽略了这一点。有谁知道更可靠的语法?
我正在开发一个 Ruby 编程教程,我想用Yard记录它。默认情况下,Yard 将模块/类中的所有方法按字母顺序排列。但是,由于本教程中每个模块中的方法都是建立在彼此之上的,因此我希望按照我编写它们的顺序保留它们。
有没有办法将 Yard 配置为不按字母顺序放置方法?
我使用 Ruby on Rails 3.1.0 和YARD 0.7.4 gem 进行文档处理。我想从另一个参数引用一个参数(@param
标签)。也就是说,我有:
# ...
#
# @param [String] argument_1
# Here I would like to have a description text with a reference/link to the
# 'argument_2' parameter (see below)...
#
# Maybe here I can use something like '@param', '{}' or '@macro'... but, how?
#
# @param [String] argument_2
# Some description text...
#
def method_name(argument_1, argument_2)
...
end
Run Code Online (Sandbox Code Playgroud)
是否可以?如果是这样,我该怎么做?
当尝试为使用 Rails 实现的服务生成 YARD 文档时,我收到以下警告:
$ yardoc
[warn]: in YARD::Handlers::Ruby::MixinHandler: Undocumentable mixin:
YARD::Parser::UndocumentableError for class MyClass
[warn]: in file 'app/models/my_class.rb':7:
7: include Rails.application.routes.url_helpers
Run Code Online (Sandbox Code Playgroud)
我的理解是 YARD 无法确定 mixin 的类型,因为它仅在运行时可用。
那么在这里该怎么做才是正确的呢?是否可以正确记录 mixin?如果没有,我该如何摆脱警告?
我正在使用YARD为我正在处理的几个项目生成文档。在其中一个项目中,我正在共同开发一个 gem,它托管了大量将由其他项目使用的冗余和共享资源。
我想要的是从第一个项目到 gem 中的类或方法的引用,以显示在主项目的文档中。例如
宝石
class Widget
# Spins the widget of course.
def spin
end
end
Run Code Online (Sandbox Code Playgroud)
项目
class SpecialWidget
# Jump and {#spin}.
def dance
end
end
Run Code Online (Sandbox Code Playgroud)
我希望 SpecialWidget 的文档生成指向 Widget#spin 方法的实际链接。
这可以做到吗?
我目前正在研究 gem 并为其编写文档。我目前有一个类,其中定义了几种方法defined_method
,如下所示:
class Client
['one', 'two'].each do |method_name|
# Sets the value
# @param argument the argument to set.
define_method("set_#{method_name}") do |argument|
# Method content
end
end
end
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 YARD 记录这些方法,但是在生成项目的文档时,这些方法不会出现在类文档中。
有谁知道我如何记录这些?我错过了什么吗?
在官方 YARD docs 中,有以下示例:
# @overload set(key, value)
# Sets a value on key
# @param key [Symbol] describe key param
# @param value [Object] describe value param
# @overload set(value)
# Sets a value on the default key +:foo+
# @param value [Object] describe value param
def set(*args) end
Run Code Online (Sandbox Code Playgroud)
+:foo+
用+
两边包起来有什么特殊含义?与+:foo+
有不同的含义:foo
吗?
开设课程,例如:
class Foo
def initialize(data)
end
end
class Bar < Foo
end
Run Code Online (Sandbox Code Playgroud)
每个继承的子类Foo
都有自己独特的属性,通过选项哈希传入data
。
各州的码输出Bar
:
class Foo
def initialize(data)
end
end
class Bar < Foo
end
Run Code Online (Sandbox Code Playgroud)
我一直无法弄清楚如何记录Bar#initialize
.
尝试包括:
class Bar < Foo
# @overload initialize(data)
# @param data [Hash]
# @option data [String] :baz Value for baz attribute
end
Run Code Online (Sandbox Code Playgroud)
(什么也没做)
class Bar < Foo
# @param data [Hash]
# @option data [String] :baz Value for baz attribute
# @!parse def initialize(data); end
end …
Run Code Online (Sandbox Code Playgroud) 我有一个模块来帮助定义某些方法、常量和类方法。它正在动态地创建它们。我需要帮助了解如何使用 Yard Doc 的@macro
功能来对齐文档并从包含的模块内部设置实例、类和常量文档。
在它的基本情况下,它看起来像这样:
module Constantizer
extend ActiveSupport::Concern
# @!macro [attach] define_constant
# @method $1?
# Is this a $1?
# @return [Boolean]
module ClassMethods
def define_constant(label, value, description)
const_set(label.to_s.upcase, value)
define_method("#{label}?") { self.id == value }
define_singleton_method(label) { find(value) }
end
end
end
class MyRecord < ActiveRecord::Base
include Constantizer
# @!parse include Constantizer
attr_accessor :label, :id
define_constant :one, 1, 'the number one'
define_constant :two, 2, 'the number two'
# ... etc ...
end
Run Code Online (Sandbox Code Playgroud)
这将define_constant
创建一个实例方法、一个常量和一个类方法。 …