Dear all,

I am trying to write a package using formal methods and classes from the methods package. I have not been able to get the package to pass rcmd check without warnings, because rcmd check does not recognize my generic functions as code objects and therefore queries why they have documentation entries.

I have isolated the problem in a very small trivial example which I give below. I have one file test.R in the R directory and one file test.Rd in the man directory. Here is the message from rcmd check:

* checking for code/documentation mismatches ... WARNING
Objects with usage in documentation object 'myGenericFun' but missing from code:
[1] "myGenericFun"

Can I get rcmd check to recognize that myGenericFun is something that need a documentation entry?

The document "Writing R Extensions" doesn't cover formal methods and classes, and I haven't found any other documentation that covers writing packages using formal methods. I am working from looking at code in Bioconductor, pixmap and gpclib. I downloaded source for pixmap and confirmed that it has the same problem with rcmd check that I mention here.

Any advice gratefully received, including any tips about how to write organise .Rd files for generic methods.

Thanks
Gordon

-------------------------------- test.R -----------------------------
.initClassesandMethods <- function(where) {
setGeneric("myGenericFun",where=where,
def=function(object) standardGeneric("myGenericFun"))
setMethod("myGenericFun","ANY",where=where,
def=function(object) paste("myGenericFun on object of class",class(object)))
setMethod("myGenericFun","matrix",where=where,
def=function(object) "myGenericFun for matrices")
}
# Use of .First.lib ensures that the new generic function is assigned in the package itself
.First.lib <- function(libname, pkgname) {
require(methods, quietly=TRUE)
# Find what position in the search path this package is
where <- match(paste("package:", pkgname, sep=""), search())
.initClassesandMethods(where)
cacheMetaData(as.environment(where))
}
------------------------- end test.R ----------------------------------

------------------------- myGenericFun.Rd ------------------------
\name{myGenericFun}
\docType{methods}
\alias{myGenericFun}
\title{My Generic Function}
\description{A simple example generic function.}

\usage{myGenericFun(object)}

\arguments{
\item{object}{Any R object. A special method exists for objects of class "matrix".}
}

\value{A character string explaining the class of object and the method dispatched.}

\examples{
x <- rnorm(10)
myGenericFun(x)
dim(x) <- c(5,2)
myGenericFun(x)
}

\keyword{models}
-------------------------------- end myGenericFun.Rd -------------------
---------------------------------------------------------------------------------------
Dr Gordon K Smyth, Senior Research Scientist, Bioinformatics,
Walter and Eliza Hall Institute of Medical Research,
1G Royal Parade, Parkville, Vic 3050, Australia
Tel: (03) 9345 2326, Fax (03) 9347 0852,
Email: [EMAIL PROTECTED], www: http://www.statsci.org

______________________________________________
[EMAIL PROTECTED] mailing list
http://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to