Message-ID: <D6A8DD57-F071-4D21-810D-45E88A9A07EB@denney.ws>
Date: 2017-12-06T13:44:51Z
From: Bill Denney
Subject: [R-pkg-devel] Conditionally register method with generic in other package
In-Reply-To: <CAPPM_gSe+nGTxi2qZcM4DKW5=_SeO+z80vWb5fEkMp+iQMV5Tw@mail.gmail.com>
> 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