[Rd] $new cannot be accessed when running from Rscript and methods package is not loaded

Peter Meilstrup peter.meilstrup at gmail.com
Tue Feb 11 03:22:25 CET 2014


Because "depends" is treated incorrectly (if I may place a value
judgement on it). I had an earlier thread on this, not sure if any
changes have taken place since then:

http://r.789695.n4.nabble.com/Dependencies-of-Imports-not-attached-td4666529.html

On Mon, Feb 10, 2014 at 5:53 PM, Kirill Müller
<kirill.mueller at ivt.baug.ethz.ch> wrote:
> Hi
>
>
> Accesses the $new method for a class defined in a package fails if the
> methods package is not loaded. I have created a test package with the
> following single code file:
>
> newTest <- function() {
>   cl <- get("someClass")
>   cl$new
> }
>
> someClass <- setRefClass("someClass")
>
> (This is similar to code actually used in the testthat package.)
>
> If methods is not loaded, executing the newTest function fails in the
> following scenarios:
>
> - Package "depends" on methods (scenario "depend")
> - Package "imports" methods and imports either the setRefClass function
> (scenario "import-setRefClass") or the whole package (scenario
> "import-methods")
>
> It succeeds if the newTest function calls require(methods) (scenario
> "require").
>
> The script at https://raw2.github.com/krlmlr/methodsTest/master/test-all.sh
> creates an empty user library in subdirectory r-lib of the current
> directory, installs devtools, and tests the four scenarios by repeatedly
> installing the corresponding version of the package and trying to execute
> newTest() from Rscript. I have attached the output. The package itself is on
> GitHub: https://github.com/krlmlr/methodsTest , there is a branch for each
> scenario.
>
> Why does it seem to be necessary to load the methods package here?
>
>
> Best regards
>
> Kirill
>
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list