From richierocks at gmail.com  Mon Nov 16 10:00:12 2015
From: richierocks at gmail.com (Richard Cotton)
Date: Mon, 16 Nov 2015 12:00:12 +0300
Subject: [Rd] Best way to implement optional functions?
In-Reply-To: <56293F15.80509@gmail.com>
References: <56293F15.80509@gmail.com>
Message-ID: <CAPp_+=di7F_JfbbL2eLk_XM9RXrL=1-sw=gO0o+42donMQ7WwQ@mail.gmail.com>

On 22 October 2015 at 22:55, Duncan Murdoch <murdoch.duncan at gmail.com> wrote:
> I'm planning on adding some new WebGL functionality to the rgl package, but
> it will pull in a very large number of dependencies. Since many people won't
> need it, I'd like to make the new parts optional.

> Can people suggest other packages that solve this kind of problem in a good
> way?

I had the same issue with the assertive package: it was getting big,
and not everyone wanted all the functionality.

The solution was to create several smaller packages with individual
components of functionality, for example assertive.base contains the
bare-minimum functionality; assertive.numbers contains functionality
related to numbers, etc.

Then the assertive package imports all the functions from the
component packages and reexports them.

That way people who want a small footprint (mostly other package
developers) can specify only what they need, and people who don't care
(mostly end users) can just type library(assertive) and get access to
everything.

-- 
Regards,
Richie

Learning R
4dpiecharts.com



[Rd] Best way to implement optional functions?
Richard Cotton