[R-pkg-devel] Conditionally register method with generic in other package

Bill Denney bill at denney.ws
Wed Dec 6 14:44:51 CET 2017


> On Dec 6, 2017, at 07:45, Joshua Ulrich <josh.m.ulrich at gmail.com> wrote:
> 
> To avoid excessive dependencies, I would like to only register
> foo.bar() if package A is installed at the time package B is
> installed.  If package A is installed after package B, then warn the
> user when package B is loaded and/or attached, so they can re-install
> A and have foo.bar() registered correctly.

One simple solution would be to wrap the instantiation of foo.bar in a require test:

if (require(A)) {
  foo.bar <- function(...) {
    print("To be or not to be")
  }
} else {
  message("To use the foo.bar function, please install package A.")
}

Thanks,

Bill


More information about the R-package-devel mailing list