创建依赖于 Rails 的 Gem,发布/测试策略

发布于 2024-12-12 04:27:33 字数 323 浏览 0 评论 0原文

我正在开源我写的一个 gem。 gem 可以更有效地处理缓存,并且您可以对密钥进行分组标记。

问题是,为了测试它,您确实需要一个使用 Rails.cache 连接到缓存的应用程序,这意味着 gem 依赖于 Rails,并且您需要有一个应用程序来测试它。

像这样开源 gem 的策略是什么?我的存储库应该是一个完整的网站,并且 gemspec 仅指出规范和 lib 目录吗?

如果您单独下载 lib 和 spec,则所有测试都将失败,因为 Rails.cache 不可访问。

我希望得到有关如何开源此类 gem 以及我的存储库应该是什么样子的建议。

谢谢

I am in the process of open sourcing a gem I wrote.
The gem handles cache more efficiently and you can tag your keys in groups.

The thing is, the in order to test it you really need an application that connects to cache with Rails.cache, meaning the gem is dependent on Rails and you need to have an application to test it out.

What's the strategy in open sourcing a gem like this, should my repository be a complete website and the gemspec point out only the spec and the lib directory?

if you download the lib and spec alone, all of the tests will fail since Rails.cache is not accesible.

I would love suggestions about how to open source this sort of gem and how should my repository should look like.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

铜锣湾横着走 2024-12-19 04:27:33

你的存储库应该只包含与gem本身相关的文件,很多人只是添加rails作为开发依赖项(在gem的gemspec或Gemfile中)。

提示:
要在本地测试您的 gem,在发布 gem 之前,您可以执行以下操作:

  • 打包您的 gem

  • 创建一个新的 Rails 项目(如果您使用 RVM 创建一个新的 gemset)推荐)

  • 将您的 gem 包含在 Gemfile 中,如下所示:

    gem 'your_gem' path=>'home/path_to_your_gem/your_gem'
    
  • 当您准备好时释放该 gem ;)

我觉得只要您指定在自述文件中,宝石在轨道顶部运行,你会没事的。

希望这有帮助,

贾兹敏

Your repository should only include the files related to the gem itself, a lot of people simply add rails as a development dependency(in the gemspec or Gemfile of your gem).

TIP:
To test your gem locally --before releasing the gem-- you can do the following:

  • Package your gem

  • Create a new rails project(if you are using RVM creating a new gemset is recommendable)

  • Include your gem in the Gemfile like this:

    gem 'your_gem' path=>'home/path_to_your_gem/your_gem'
    
  • When you are ready release the gem ;)

I feel that as long as you specify in the README that the gem runs on top of rails you will be fine.

Hope this helps,

Jazmin

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文