6

我正在开发一个 R 包,它封装了该rmongodb包并创建了一个开发人员友好的界面来使用 MongoDB。该包在proto内部使用。

我想通过一个名为 的原型对象(一个环境)导出一个工厂方法MongoDB,其定义是:

MongoDB <- proto(
  new = function(., ...) {
    # Good stuff in here...
  }
)

在使用 RStudio & 进行开发devtools期间以及在本地测试期间,这似乎不是问题。但是,我遇到了几个问题:

  • devtools::check()坚持import(MongoDB)在我的 NAMESPACE 文件中放入一个R CMD check失败的文件,并显示“不需要命名空间依赖:'MongoDB'”。

  • 当我删除此导入指令R CMD checktestthat,即使我手动添加export(MongoDB). 但是,devtools::test()在 RStudio 中工作正常。

从 R 包中导出proto对象(环境)的推荐方法是什么?

更新:

根据 Gabor 在下面的建议,我确保MongoDB.Rd声明MongoDB为数据(链接有来源)。我仍然MongoDB无法在测试中不可见(使用testthat)。我的DESCRIPTION文件在这里NAMESPACE这里

4

2 回答 2

3

试试这个:

  1. export("MongoDB")在您的文件中指定NAMESPACE以使MongoDBproto 对象公开可用。
  2. LazyData: yes在您的文件中指定,DESCRIPTION以便在访问时自动加载。
  3. 添加一个.Rd文件,将其记录为数据集。

然后它应该通过R CMD check

于 2012-12-22T11:38:33.120 回答
1

该指令:

import(MongoDB)

意味着您将MongoDB命名空间导入到您的包中。如果我理解正确,可能不是你想要的。

我想你想导出MongoDB对象,然后

export(MongoDB) 

应该可以正常工作。

于 2012-12-22T10:16:37.197 回答