【发布时间】:2012-12-09 16:23:11
【问题描述】:
我正在开发一个 R 包,它包装了 rmongodb 包,并创建了一个开发人员友好的界面来使用 MongoDB。该包在内部使用proto。
我想通过一个名为MongoDB的原型对象(一个环境)导出一个工厂方法,其定义是:
MongoDB <- proto(
new = function(., ...) {
# Good stuff in here...
}
)
在使用 RStudio 和devtools 进行开发期间以及在本地测试期间,这似乎不是问题。但是,我遇到了几个问题:
devtools::check()坚持在我的 NAMESPACE 文件中放置一个import(MongoDB),这使得R CMD check失败并显示“不需要命名空间依赖项:'MongoDB'”。当我删除此导入指令时,
R CMD check在运行我的testthat测试时失败,并出现“找不到对象'MongoDB'”,即使我手动添加了export(MongoDB)。但是,devtools::test()在 RStudio 中运行良好。
从 R 包中导出 proto 对象(即环境)的推荐方法是什么?
更新:
根据 Gabor 在下面的建议,我已确保 MongoDB.Rd 将 MongoDB 声明为数据(链接有来源)。我仍然在MongoDB 中失败,在测试中不可见(使用testthat)。我的DESCRIPTION 文件是here 和NAMESPACE 是here。
【问题讨论】:
-
您可能还想看看
RMongo包。它使用Java 驱动程序并且具有比rmongodb包更高级别的接口。
标签: r mongodb devtools proto testthat