问题标签 [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 回答
49 浏览

ruby - 需要 Gem 版本时如何执行“OR”

目前我有一个 Gemspec,它需要 Rails > 3.1 的特定版本的 Rails 3.x:

我希望更新此语句以要求~> 3.1OR ~> 4.0.0。我已经尝试过:

  • ~> 3.1, ~> 4.0.0
  • ~> 3.1 OR ~> 4.0.0
  • ~> 3.1 || ~> 4.0.0
  • ~> 3.1 ~> 4.0.0

没有一个工作。当前的 RubyGems 版本有可能吗?

现在我使用 > 3.1,但真正的问题是这是否可能。

0 投票
1 回答
247 浏览

ruby - Gem 定义:忽略 JRuby 中的 extconf.rb

我有一个带有 C 扩展和 java 扩展的 gem,它可以通过 rbenv 在 JRuby 中正常安装,但无法通过 RVM 在 JRuby 中安装。gemspec和项目在 Github 上。我尝试在 gemspec 中明确列出文件,当平台是 Java 时不包括 extconf.rb 和 *.c 文件,但仍然无法在 RVM 的 JRuby 上安装 gem。

您可以尝试安装 withgem install pg_array_parser --pre以查看安装失败并使用 master 中的当前 gemspec。我不确定此时我还能尝试什么。

0 投票
1 回答
82 浏览

ruby - 有没有办法给 gemspec 添加冲突

我正在制作一个名为ugly_fork_of_foo. 我可以在我的 gemspec 中添加一些东西来告诉系统丑陋的fork_of_foo 与 foo 冲突,两者不能同时安装吗?

0 投票
2 回答
5156 浏览

ruby-on-rails - Gemspec:如何指定不必自动需要的依赖项?

我编写了一个具有一定依赖关系数组的 gem,其中一些我不希望在捆绑到另一个项目时隐式需要它们。一个例子是 uuidtools gem,我只想在使用它的文件中使用它。

这种语法是错误的,因为 :require => false 在那里是出乎意料的,但这或多或少总结了我想用它做什么。有人可以帮我吗?

0 投票
4 回答
13537 浏览

ruby-on-rails - Rails:Gemspec 无效。请修复此 gemspec

当我从 github 安装 gem 时,它给了我错误:

gemspec是:

我该如何解决这个错误?

0 投票
3 回答
25080 浏览

ruby-on-rails - 如何在 .gemspec 文件中将本地 gem 的依赖项添加到 rails 插件/引擎

我试过这样:</p>

就像在中添加 gemgemfile,但它不起作用,并且会导致此错误:

0 投票
1 回答
1609 浏览

ruby - 为什么捆绑器使用错误的 gemspec 文件?

我有一个定制的 gem,它在捆绑、构建、分发和实施方面一直运行良好。gem 是一个框架的核心,其他 gem 是从这个框架中派生出来的。由于大多数派生的 gem 将具有相同的基本结构,因此我想bin在 gem 的路径中包含一个 Ruby 脚本,该脚本可用于将文件从template文件夹复制到用户将开发自己的 gem 的新文件夹中。

我遇到的问题是该template文件夹有一个 gemspec 文件,该文件以文件$name$.gemspec中类似命名的类/模块命名(例如:) module $Name$,其中$name$被用户提供的名称替换。

不幸的是,当我bundle install从 gem 的最顶层路径运行时,出现错误:

看起来 Bundler 使用了错误的 Gemfile,即使我通过以下方式之一显式传递 Gemfile 或路径:

我还尝试更新gemspec我的 Gemfile 行,但无济于事:

最后,我确保该template文件夹甚至不包含在 中my_gem.gemspec,但这似乎并不重要:

有谁知道为什么 Bundler 试图读取./template/$name$.gemspec而不是./my_gem.gemspec

0 投票
1 回答
736 浏览

rubygems - 构建另一个 gem 时如何使用私有 gem 服务器托管的 gem

如果我构建了一个私有 gem(例如,在我的公司内部托管),那么我想在我正在构建的另一个 gem(不是应用程序!)中重用该 gem,我该怎么做?

我在哪里放置我的依赖项并告诉我的新 gem 如何找到旧的(已经构建的)私人托管的 gem?

0 投票
1 回答
162 浏览

bundler - 如何开发一个依赖另一个的宝石

我有一个 gem A,它依赖于 gem B。这两个 gem 都是我自己的,目前正在私人开发中。我没有计划将这些发布到 ruby​​gems。

我想在我的 rails 应用程序中使用 gem A。

问题是当我尝试为我的 rails 应用程序运行 bundle install 时出现此错误。

在任何来源中都找不到 gem 'A (>= 0) ruby​​' 所需的 gem 'B (>= 0) ruby​​'。

在我的 Gemfile 的 Rails 应用程序中,我有

在 gem A 的 gemspec 中我有

在 A 的 Gemfile 中,我明确地设置了 B 的位置,如下所示

当我尝试运行我的 rails 应用程序时,上述配置似乎不起作用。

但是,当我运行每个 gem 的测试套件时,它们都通过了。

我相信问题是当我运行 rails 应用程序并且捆绑程序加载依赖项 A 时,它只查看 A 的 gemspec,完全忽略了 gemfile。这可能是故意的。那么如何让我的代码工作而不必在这个开发阶段发布我的私人 gem。

0 投票
1 回答
743 浏览

ruby-on-rails - 是否宝石规格。name 必须等于 gem 常量名称?

tl;博士

我正在尝试将更大的应用程序的一部分分解为可安装的引擎。该引擎将以不同的风格存在,每种风格都包含在自己的 gem 中。我无法让 gem 名称与引擎常量名称不同。

细节

提取的部分包含注册、身份验证和会话处理的逻辑。该应用程序由世界不同地区的客户使用,对使用该产品的最终客户有不同的要求和规定。这促使我们针对每个监管区域的这些需求创建单独的模块。它们当前位于 lib 目录中,并且根据配置加载不同的实现。

引擎的目标是安装适当的引擎,并且路由文件将所有相关调用路由到引擎。

由于我们有几个这样的注册模块,而且还会有更多,我们需要为变体维护几个 gem。我正在尝试使宝石具有不同的名称(auth_A、auth_B 等),但包含的引擎具有相同的名称,Auth::Engine。

这样我们就可以在 Gemfile 中包含正确的 gem,其余的都可以正常工作,因为无论运行什么版本,它应该路由到的端点总是相同的。

问题

我遇到的问题是我无法让 gem 有一个名字,而引擎却是另一个名字......

如果我生成一个新的引擎名称身份验证,它可以很好地安装在主应用程序中。如果我然后将 gem 名称和包含文件夹更改为 auth_a 并更新它停止工作的主机应用程序 Gemfile,我可以很好地捆绑,但是当我尝试启动主机应用程序时,它在绑定到挂载引擎时失败,抱怨 Auth:: Engine 是一个未定义的常量。

我的,略微编辑的 gemspec 看起来像这样:

我从生成的脚手架中唯一改变的是s.name = "auth_a". 来自主机应用程序 Gemfile 的相关行:gem 'auth_a', path: "../auth_a"...

我查看了整个源代码树,试图找到它从 gem 名称中推断出名称的位置,但我看不到它。我不知道我错过了什么,gem spec 文档对此也没有太大帮助......我不认为 gem 名称绑定到 gem 的常量名称,但也许我是错误的?你能覆盖它吗?还是我错过了其他东西?