问题标签 [gemspecs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
774 浏览

rspec - 如何让 rspec 读取我的 gemspec 中的依赖项?

当我运行“rspec”或“bundle exec rspec”时,它不允许我使用 .gemspec 文件中的依赖项。我是否必须重复自己并打破 DRY 原则并在 Gemfile 和 .gemspec 中显示我的宝石?(ps。我正在为我的模型文件做这个作为 Rails 引擎)

宝石文件:

.gemspec:

例子:

“bundle exec rspec”显示错误:

0 投票
1 回答
4378 浏览

ruby - 如何在我的 gemspec 中使用来自 github 的依赖项?

我的 Gemfile 目前有以下内容:

我将我的模型迁移到 .gemspec 中,但我不确定这在我的 gemspec 中会是什么样子。我目前有:

但这最终使用了错误的依赖项(我克隆的原始依赖项)我想使用我的依赖项。我如何将我的 gemspec 依赖项指向我的 github 存储库?

0 投票
1 回答
294 浏览

ruby-on-rails - 通过 Bundler 和挂载的应用程序加载本地 gem

我正在创建一个 gem(我们称之为它mygem),它本质上是一个 Sinatra 服务器,旨在安装在基于 Rack 的应用程序中。

在我的 gem 的 gemspec 文件中,我有以下内容:

在我的 gem 的 Gemfile 中,我有以下内容

现在,当从mygem's 文件夹中运行服务器时,这完全符合预期:它不会获取 kss 依赖项,而是会在我的本地驱动器上查找并加载该版本。

当我添加mygem到 Rails 测试应用程序 Gemfile 时,问题就出现了。在我的 Rails 测试应用程序 Gemfile 中,我有以下行:

我希望在 abundle install上,Bundler 将加载mygem及其依赖项;但是对于kss依赖项,Bundler 实际上并没有加载本地依赖项,而是提取到 ruby​​gems 以查找并加载它。我假设是因为在这种情况下,它只是从 gemspec 行中读取,而不包括我的依赖项覆盖。

我能做些什么来解决这种行为吗?我非常希望能够在本地运行和测试这些东西,但是 Bundler 似乎无法识别来自更高级别应用程序的依赖项覆盖。

如果我以错误的方式处理此问题,我完全愿意接受任何建议或更改。

0 投票
1 回答
1159 浏览

ruby-on-rails - 更新 gemspec 文件列表的最佳实践是什么?

关于 gemspecs 的文件列表。

我注意到珠宝商使用项目中的文件列表手动更新此列表。例如

是否有任何证据表明在项目(尤其是 Rails 项目)中使用 gem 时,使用git ls-filesDir.glob('**/*')动态生成 gemspec 的文件列表会导致性能问题?例如?

0 投票
1 回答
54 浏览

ruby-on-rails - Different gemspec code

I have a local and production rails app running. Having problems, so I did a diff and found amoung many things, but the most curious was that the gemspec was different! For the same gemspec: action-mailer-3.0.13.gemspec I have different code!

My local one has:

#xA;

and the exact same from production has:

#xA;

So am wondering what is going on here? Any ideas?

Edit: Also

#xA;

I think there is the clue in this, Maybe time to read up on this gemspec thing.

0 投票
1 回答
223 浏览

ruby-on-rails - 在 Rails 应用程序中启动 Ruby Gem 版本控制

我有一个 Rails 应用程序指向 github 上的 gem(尚未推送到 Ruby Gems),它还没有版本化,所以当我运行 bundle 时,它​​看起来像这样:

我一直在对 gem 进行更改并希望开始对其进行版本控制,因此当我推动掌握它时,它不会破坏依赖于以前 gem 的 Rails 应用程序中的功能。我不够成熟,无法使 gem 向后兼容,所以我认为版本控制是处理这个问题的最佳方法。

我正在寻找有关如何开始对该 gem 进行版本控制的建议,是否只是将 gemspec 更改为 0.0.1,然后将我的 Rails 应用程序中的 gemfile 更改为指向它?

0 投票
3 回答
541 浏览

ruby-on-rails - Rails 引擎:在哪里定义仅用于测试的 gem

我正在构建一个引擎,我想使用 VCR 和 Webmock 进行测试。

创建引擎时生成的 Gemfile 中的文档似乎建议应该通过 gemspec 加载所有引擎的 gem,但唯一的选项是 add_dependency 和 add_development_dependency。如果我使用后者,VCR 和 Webmock 会加载到我的开发环境中,然后我必须在开发环境中显式禁用 Webmock。我宁愿不这样做,因为主机应用程序可能希望这些 gem 在开发中工作,而我的引擎禁用它们可能是出乎意料的。

显而易见的解决方案似乎是使用引擎的 Gemfile:

这是加载仅在测试引擎时使用的 gem 的正确方法吗?

这样做有什么陷阱吗?

0 投票
2 回答
92 浏览

ruby-on-rails - 有没有办法用我的 gem 打包我的 gem 依赖的所有 gem?

我正在编写一个具有多个 gem 依赖项的 gem,其中一个依赖于在较新版本中破坏向后兼容性的 gem。这让我开始思考——我不希望我正在构建的 gem 成为让人们难以更新他们的应用程序的“那个 gem”。我也不想强迫使用我的 gem 的人必须在他们的应用程序的其余部分使用它所依赖的 gem 的特定版本。

一方面,我可以重写这些依赖项中的所有代码,将它们与我的 gem 捆绑在一起,然后一起删除依赖项,但这似乎有点乏味。有什么方法可以让我简单地将 gem 依赖项直接包含在我的 gem 中,然后将它们包装在一个模块中,这样我的打包版本就不会与应用程序其余部分使用的版本冲突?

0 投票
1 回答
429 浏览

ruby - 通过整个 ruby​​ gem 使配置可用

我正在创建一个 gem,我想在其中定义一些可用的常量。

在我的实际gemspec中,我添加了以下内容:

constants.rb我定义了一个简单的变量:$FOO = "Hello, World!"

然后在我的lib/gem_name/core.rb,我正在尝试,puts $FOO但它似乎不可用。没有错误,只是出现空白。我不了解 gem 依赖项和 require 树在这里是如何工作的吗?

** 更新 **

我也试过config直接在下面添加一个目录lib,该目录已经在 LOAD_PATH 中。然后在我的库中,我正在尝试require config/constants,但这就是说它无法加载这样的文件。

我也试过直接移动constants.rb到 lib 目录并要求这样做,它警告我它无法加载这样的文件。有什么东西很不靠谱。

0 投票
3 回答
6943 浏览

ruby - Ruby_Installation_Error_Watir

我遇到以下错误:

我已经安装了 gem watir,我的系统配置如下:

  • 操作系统:Windows7
  • 即:10