r - Is there anyway to document S4 class and its constructor separately using Roxygen2 -
i trying design s4 class own initialization method , separately document them roxygen2. assuming class defined as:
#' classa #' @name classa-class #' @rdname classa-class ######## @aliases null #' @exportclass classa classa <- setclass(class = "classa", slots = list(member = "any")) with initialization method:
#' constructor #' @name classa #' @rdname classa #' @export classa setmethod("initialize", "classa", function(.object, x) { .object@member = x return(.object) }) after compiling package roxygen2. got 2 .rd files 3 page:
- classa-class: classa
- classa: classa
- classa: constructor
both class?classa , ?classa show classa-class page. want hope class?classa lead classa-class: classa while ?classa lead classa: constructor.
so, question how separate class documentation , constructor documentation roxygen2? thank help.
(i understand roxygen2 put aliases class name s4 class default. when set @aliases null, the classa-class: classa help page disappeared!! left the classa: constructor)
the reasons both files show under class documentation setclass uses class name alias class in documentation. in addition, method generic initialize defined classa specifies @rdname classa points classa-method.
here 2 solutions:
first, can simplify roxygen2 header codes , behaviour want, need use @name call initialize method other classa.
#' \code{classa} class definition #' #' @slot member description of slot here classa <- setclass(class = "classa", slots = list(member = "any")) #' constructor \link{classa-class} #' #' constructor. #' @name initializeclassa #' @export setmethod("initialize", "classa", function(.object, x) { .object@member = x return(.object) }) that gives classa-class page ?classa , ?"classa-class" constructor, whatever name used after @rdname, e.g. ?initializeclassa, if that's want.
second, recommend not use initialize @ all, instead create new instances of classa using new("classa", membervalue). can define prototype in class definition assign default values of member if want, and/or validator functions. need separate page constructor?
Comments
Post a Comment