我有兴趣记录我的代码,其中大部分是我不创建新类的脚本。
来自阅读YARD文档,并试图实际实现一些 YARD 文档,似乎您在定义的类中声明了 YARD 标签。当我创建一个类或向一个类添加新方法时,我已经成功地使用了 YARD,如下面的示例代码所示,我还能够使用 @author
和 @示例
。
#!/usr/bin/env ruby -wKU
## a YARD test
class String
# Prints a string using two supplied strings
#
# @param str1 [String] A string to print
# @param str2 [String] A string to print
# @return [String] A printed string
def yardTest(str1, str2)
p sprintf("Hello, %s, %s", str1, str2)
end
end
我的问题是:
- 有没有办法在不定义类的情况下使用 YARD 标签来记录代码(尤其是方法)?
- 如果不是,除了在我的代码中添加大量注释之外,还有什么解决方案?
最佳答案
就像对任何基于类或模块的方法一样,只需在脚本中记录方法。 YARD 应该将它们记录为“顶级命名空间”的一部分。
对脚本的以下修改正常工作,删除 class String
包装器:
#!/usr/bin/env ruby -wKU
# Prints a string using two supplied strings
#
# @param str1 [String] A string to print
# @param str2 [String] A string to print
# @return [String] A printed string
def yardTest(str1, str2)
p sprintf("Hello, %s, %s", str1, str2)
end
您可能还想考虑为用户记录脚本的 API,当然,这是针对不同的目的和受众。
还要考虑将命令行界面与执行操作的方法分开 - 在这种情况下,您最终会创建合适的模块和类。当使任何事情变得复杂时,这是一种自然的模式,并且允许您将来在脚本之间共享您的逻辑,或者可能共享到不从命令行调用的东西中。您可以查看 thor
gem - 它是一个用于创建命令行脚本的框架,并包含遵循良好抽象模式的命令行界面示例。 Thor 支持在命令行脚本中轻松包含标准实践用法和帮助。
关于ruby - 如何使用 YARD 记录简单的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19465192/