0

我正在使用axlsx 2.0.1gem 生成电子表格。我遇到了必须隐藏一些工作表的情况。在示例中,您可以使用以下命令隐藏工作表:

 wb.add_worksheet name: 'hidden', state: :hidden do |sheet|
    sheet.add_row ['you cant see me!']
  end

但这不适用于它。然后,我将 gem 包括在内

gem 'axlsx', git: "git@github.com:randym/axlsx.git"

然后它起作用了。那我该怎么办呢?我应该继续使用 git url 还是其他东西?

4

1 回答 1

0

问题是这个 gem 的作者自去年 9 月以来就没有在 RubyGems 中发布过更新版本。您可以通过访问RubyGems 中 gem 的条目来看到这一点。如您所见,最新版本 (2.0.1) 发生在 2013 年 13 月 9 日。

由于您感兴趣的功能是在 gem 的 master 分支上添加的,因此在您的 Gemfile 中有一个 git URL 对您来说很好。然而,这对于生产系统来说远非理想!如果您要(无意中)更新此 gem,gem 的 master 分支(并不总是稳定或经过良好测试)中的任何更改都可能最终出现在您的项目中。

你可以在 github 上 fork 项目并使用 Gemfile 中的 fork URL 来确保不会在一夜之间发生任何更改。或者您可以搜索一个 git 标记,该标记代表您想要的状态的项目(即在实现隐藏工作表功能之后)。如果需要,您甚至可以在 Gemfile 中设置特定的提交哈希!

一旦作者发布了他的 gem 的新稳定版本,并且在您确保它对您正常工作(例如没有回归)之后,您可以将 Gemfile 改回更简单的gem 'axlsl'.

如果您想了解如何在 Gemfile 中指定某个分支、提交或标记,请查看此处:如何从 github 获取 gem 的特定“提交”?

于 2014-05-05T13:40:24.000 回答