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

2018-01-22 Thread Joshua Ulrich
For posterity, the solution I employed did not register the method as a formal S3 method. Functionality in package B was unchanged as long as package B was loaded and attached... which was good enough for my purposes. On Wed, Dec 6, 2017 at 6:45 AM, Joshua Ulrich wrote:

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

2017-12-07 Thread Hadley Wickham
We use this technique in a couple of places: https://github.com/tidyverse/dbplyr/blob/6be777d8b23d588f19c98de52f4e58f16c2ef67e/R/zzz.R Basic idea is to call registerS3method() manually, when needed - it's just a little tricky because the suggested package may be loaded either before or after your

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

2017-12-07 Thread Hadley Wickham
On Thu, Dec 7, 2017 at 2:44 AM, Bill Denney wrote: > >> On Dec 6, 2017, at 07:45, Joshua Ulrich 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

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

2017-12-07 Thread Joshua Ulrich
Bill, Duncan, Thanks for the replies. On Wed, Dec 6, 2017 at 12:51 PM, Duncan Murdoch wrote: > On 06/12/2017 8:44 AM, Bill Denney wrote: >> >> >>> On Dec 6, 2017, at 07:45, Joshua Ulrich wrote: >>> >>> To avoid excessive dependencies, I would

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

2017-12-06 Thread Duncan Murdoch
On 06/12/2017 8:44 AM, Bill Denney wrote: On Dec 6, 2017, at 07:45, Joshua Ulrich 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,

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

2017-12-06 Thread Bill Denney
> On Dec 6, 2017, at 07:45, Joshua Ulrich 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