Documenting setter functions with roxygen
Asked Answered
I

1

7

I have a function that does nothing more than ads a unique attr to any R object. Base demo:

#' Setter function
#' @param x an R object
#' @param value a character value to set
#' @export
`foo<-` <- function(x, value){
    attr(x, 'foo') <- value
    return(x)
}

This works like a charm except for generating a good Rd file, relevant part:

\usage{
  foo(var, value) <- value
}

And of course it triggers a warning while running R CMD check as it should be foo(var) <- value.

Any hints would be really apprecieted!


Update: thanks to richierocks it seems there is a fix

Indisposed answered 15/1, 2012 at 21:29 Comment(4)
Are you using roxygen or roxygen2?Singles
@hadley: roxygen2, just added roxygen tag also to attain more attention.Indisposed
What version are you using? Roxygen2 should do that automatically since 2.2Singles
@hadley: I am using 2.2.2 from CRAN. Without @usage tag, I get the above result.Indisposed
U
9

You can use the roxygen tag @usage

Here is an example from one of my packages:

#' @rdname pattern
#' @usage pattern(x) <- value
#' @param value New value
#' @export pattern<-
"pattern<-" <- function(x, value=c("^", "($|(_\\d+(_\\d+)*)$)")){
  attr(x, "pattern") <- value
  x
}

This results in my desired documentation:

Usage

  pattern(x) <- value

Arguments
x surveydata object

value New value
Unaccountedfor answered 16/1, 2012 at 11:9 Comment(3)
Works like a charm, thanks @Unaccountedfor for pointing my attention to @usage - I just do not how could I take no notice of this useful tag.Indisposed
That's because you should never need to use @usage - any time you do it is a bug in roxygen2 and you should file a bug report.Singles
Thanks @hadley, I have added a comment on the appropriate issue.Indisposed

© 2022 - 2024 — McMap. All rights reserved.