Ruby 如何将文件返回类型的方法与收益率联系起来?

Ruby 如何将文件返回类型的方法与收益率联系起来?,ruby,code-documentation,yard,Ruby,Code Documentation,Yard,我想使用YARD更好地记录这种天真的记忆方法的返回类型: # Ensures that given block is only executed exactly once and on subsequent # calls returns result from first execution. Useful for memoizing methods. # # @param key [Symbol] # Name or unique identifier of the method tha

我想使用YARD更好地记录这种天真的记忆方法的返回类型:

# Ensures that given block is only executed exactly once and on subsequent
# calls returns result from first execution. Useful for memoizing methods.
#
# @param key [Symbol]
#   Name or unique identifier of the method that is being memoized
# @yield
# @return [Object] Whatever the block returns
def memoize(key, &_block)
  return @memos[key] if @memos.key?(key)

  @memos[key] = yield
end
注意:在这个类的#initialize方法上初始化了一个空的散列
@memos

现在,最好表示此方法总是返回给定块返回的任何内容,但我不确定如何最好地执行此操作。我曾想过使用
@yieldreturn
,但随后需要类似于泛型的东西来表达类似于:

# @yieldreturn [<T>]
# @return [<T>] Whatever the block returns
#@yieldreturn[]
#@return[]无论块返回什么
但我相信这是无效的


是否有任何方式来表示返回类型和提供的块的这种连接?任何建议都非常感谢:)

我可能会把它写在描述中:)哈哈,是的,到目前为止我就是这么做的。但是像我的IDE这样的工具当然不能正确地获取它。因此,我希望能找到一些秘密的码方式来表达这一点……您的IDE如何处理
Enumerable#inject
,因为这是类似的情况?它优雅地忽略了这一点:在MRI方法存根上没有码样式的文档块,RubyMine(我的IDE)使用它来生成这里的文档。因此,每当它不知道一个给定的方法返回什么时,它就会简单地放弃暗示类型。