问题标签 [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.
ruby - 需要 Gem 版本时如何执行“OR”
目前我有一个 Gemspec,它需要 Rails > 3.1 的特定版本的 Rails 3.x:
我希望更新此语句以要求~> 3.1
OR ~> 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,但真正的问题是这是否可能。
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。我不确定此时我还能尝试什么。
ruby - 有没有办法给 gemspec 添加冲突
我正在制作一个名为ugly_fork_of_foo
. 我可以在我的 gemspec 中添加一些东西来告诉系统丑陋的fork_of_foo 与 foo 冲突,两者不能同时安装吗?
ruby-on-rails - Gemspec:如何指定不必自动需要的依赖项?
我编写了一个具有一定依赖关系数组的 gem,其中一些我不希望在捆绑到另一个项目时隐式需要它们。一个例子是 uuidtools gem,我只想在使用它的文件中使用它。
这种语法是错误的,因为 :require => false 在那里是出乎意料的,但这或多或少总结了我想用它做什么。有人可以帮我吗?
ruby-on-rails - Rails:Gemspec 无效。请修复此 gemspec
当我从 github 安装 gem 时,它给了我错误:
gemspec是:
我该如何解决这个错误?
ruby-on-rails - 如何在 .gemspec 文件中将本地 gem 的依赖项添加到 rails 插件/引擎
我试过这样:</p>
就像在中添加 gemgemfile,
但它不起作用,并且会导致此错误:
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
?
rubygems - 构建另一个 gem 时如何使用私有 gem 服务器托管的 gem
如果我构建了一个私有 gem(例如,在我的公司内部托管),那么我想在我正在构建的另一个 gem(不是应用程序!)中重用该 gem,我该怎么做?
我在哪里放置我的依赖项并告诉我的新 gem 如何找到旧的(已经构建的)私人托管的 gem?
bundler - 如何开发一个依赖另一个的宝石
我有一个 gem A,它依赖于 gem B。这两个 gem 都是我自己的,目前正在私人开发中。我没有计划将这些发布到 rubygems。
我想在我的 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。
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 的常量名称,但也许我是错误的?你能覆盖它吗?还是我错过了其他东西?