For instance, say I have the following package called Test
and I want to export class A
:
# In /R/Test.R:
#' @docType package
#' @import methods
#' @exportClass A
A <- setRefClass("A", methods = list(foo = identity))
However, after building and loading, I get the following error when using A
's generator:
> library(Test)
> A()$foo(1)
Error: could not find function "A"
I've checked the contents of my NAMESPACE
file is fine:
exportClasses(A)
import(methods)
So what's going wrong? Why isn't my class generator being exported?
If you add
@export A
then the generator functionA
will be exported, too, e.g.Important: Don't forget to explicitly mention
A
in the export directive or it doesn't appear to work, unlike for functions.Alternatively, as the class is being exported, you can still use the class via
new()
, e.g.but it's easy to just add the export.