标签: yard

如何在 YARD 文档中创建任意链接?

我正在尝试在我的 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 documentation rdoc yard

5
推荐指数
1
解决办法
1085
查看次数

Ruby Yard 是否具有可与 RDoc :include: 标签相媲美的功能?

RDoc 有 :include: 标签(见本页底部),它将接收任意文本文件和格式,就好像它在包含开始的地方缩进一样。这是为文档示例提取源代码的好方法。

Yard是否有类似的标签或功能?

ruby rdoc yard

5
推荐指数
1
解决办法
415
查看次数

使用 Ruby 的 Yard doc 工具,我可以将 Yard 配置为*不*按字母顺序放置方法吗?

我正在开发一个 Ruby 编程教程,我想用Yard记录它。默认情况下,Yard 将模块/类中的所有方法按字母顺序排列。但是,由于本教程中每个模块中的方法都是建立在彼此之上的,因此我希望按照我编写它们的顺序保留它们。

有没有办法将 Yard 配置为按字母顺序放置方法?

ruby documentation yard

5
推荐指数
1
解决办法
595
查看次数

如何从另一个参数引用一个参数(“@param”标签)?

我使用 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)

是否可以?如果是这样,我该怎么做?

ruby documentation ruby-on-rails reference yard

5
推荐指数
1
解决办法
882
查看次数

如何使用 YARD 记录 Rails 的 url_helpers 的使用情况?

当尝试为使用 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?如果没有,我该如何摆脱警告?

ruby documentation ruby-on-rails yard

5
推荐指数
1
解决办法
517
查看次数

合并多个宝石的码文档

我正在使用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 方法的实际链接。

这可以做到吗?

ruby yard

5
推荐指数
0
解决办法
138
查看次数

使用 YARD 记录元编程创建的方法

我目前正在研究 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 记录这些方法,但是在生成项目的文档时,这些方法不会出现在类文档中。

有谁知道我如何记录这些?我错过了什么吗?

ruby documentation metaprogramming yard

5
推荐指数
1
解决办法
274
查看次数

在 Ruby YARD 文档中,用 +(加号)包裹单词 +example+ 是什么意思?

官方 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吗?

ruby yard

5
推荐指数
1
解决办法
76
查看次数

如何使用 Yard 记录继承的构造函数

开设课程,例如:

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)

ruby yard

5
推荐指数
1
解决办法
608
查看次数

Yard doc 和常量、实例和类方法的动态分配

我有一个模块来帮助定义某些方法、常量和类方法。它正在动态地创建它们。我需要帮助了解如何使用 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创建一个实例方法、一个常量和一个类方法。 …

ruby ruby-on-rails yard

5
推荐指数
0
解决办法
228
查看次数