pkgnet icon indicating copy to clipboard operation
pkgnet copied to clipboard

Discussion: separate set_package and set_package_path methods

Open jayqi opened this issue 6 years ago • 1 comments

While reviewing #129, @jameslamb had the idea:

ok next idea related to our ongoing discussion today re #106 ....

I think we should make reporters have a set_package and set_package_path separately. DependencyReporter, for example, shouldn't have to care about pkg_path.

Thoughts?

jayqi avatar Nov 30 '18 20:11 jayqi

I have two ideas for how to do this:

Idea 1 : Explicit set_package_path method

Only FunctionReporter gets this method. Other ones don't. set_package no longer takes pkg_path as an argument.

Since this breaks the identical interface, but we still want to be able to pass it through in CreatePackageReport, we can do something like:

if (`set_package_path` %in% names(reporter)) {
    reporter$set_package_path(pkg_path)
}

So it will only do it for reporters where it finds the method.

Idea 2: Use ... to allow extraneous inputs

set_package has the interface function(pkg_name, ...) so it can take extra arguments without complaining.

Only FunctionReporter will have the interface function(pkg_name, pkg_path, ...). The method will call the inherited super$set_package and then also do its pkg_path stuff.

jayqi avatar Feb 11 '19 02:02 jayqi