6

如何记录引用类的成员函数的使用?

如果我写一个Rd带有\usage块的文件,我该如何避免WARNING

Functions/methods with usage in documentation object 'XmlDoc' but not in code:
  $ new

我希望该\usage块允许我编写如下内容:

obj <- ClassName$new(par1, par2, ...)
obj$method1(oth1, ...)

然后我会记录\arguments块中的参数。

如果我这样做,R CMD check抱怨

Assignments in \usage in documentation object 'ClassName':

并且不将这些方法识别为我需要文档的代码对象。

到目前为止,我正在编写Rd没有\usage块的文件并在块中编写上面的代码\examples,但是我没有地方记录参数,这样check实际上几乎没有检查。由于我对此不满意,所以我现在向社区询问当前的常见做法。

4

2 回答 2

5

我不知道这是否是正确的方法,但我所做的是有一个Methods部分,然后将方法文档放在内部describe 中

于 2011-07-20T15:37:08.283 回答
5

如果我理解正确,Reference Classes 方法S4 方法,因此记录 S4 类和方法适用。

为了使这个答案更加独立,这是我在包中的Logger类的情况下所做的logging.oo

这是我想要记录的代码,有一些遗漏[...]。

Logger <- setRefClass("Logger",
                      fields=list(name = "character"),
                      methods=list(
                        setLevel = function(newLevel) { [...] },
                        getLevel = function() { [...] },
                        addHandler = function(...) { [...] },

这是 .Rd 文件的相应内容:

\alias{\S4method{new}{Logger}}
\alias{\S4method{setLevel}{Logger}}
\alias{\S4method{getLevel}{Logger}}
\alias{\S4method{addHandler}{Logger}}
[...]
\usage{
\S4method{new}{Logger}(name)
\S4method{setLevel}{Logger}(newLevel)
\S4method{getLevel}{Logger}()
\S4method{addHandler}{Logger}(...)

而在 NAMESPACE 文件中,我只是指出我正在导出 Logger 类,我没有指定它的方法:所有都是自动导出的。

于 2011-07-22T07:13:55.827 回答