rubygems想知道我的开发依赖项是什么,这似乎是一个奇怪的功能,到目前为止,我从未见过它用于在运行gem测试时实际加载这些依赖项。 最佳答案 如果有人出于某种原因决定破解您的gem,例如他们在Github上fork它以向其添加功能(他们可能想贡献),如果他们知道您的gem需要哪些开发依赖项(例如测试框架、模拟工具等),这会有所帮助。如果您将bundler与gemspec命令一起使用,它将挂接到您的gemspec依赖项并在您运行时安装开发依赖项以及运行时依赖项bundleinstall这样您就不必手动安装这些gem。gem命令还可
有没有一种干净的方法可以从.gemspec文件中提取版本字符串?(gem尚未安装)例如somethingcool.gemspec是Gem::Specification.newdo|s|s.name="somethingcool"s.version="1.2.3"...etc...end我想提取“1.2.3”。我可以grep出来,但必须有更好的方法。 最佳答案 require"rubygems"spec=Gem::Specification::load("example.gemspec")putsspec.version
我正在开发一个gem(GemA),它使用我也编写的另一个gem(GemB)。至此GemB已添加到GemA的gemspec中:gem.add_dependency"gem_a","~>0.0.4"但我现在发现需要使用我的本地版本进行调试。要在Gemfile中声明一个本地依赖项,我可以这样做:gem'gem_a',path:"/local/path/to/gem_a"但是如何在.gemspec中声明本地依赖项? 最佳答案 这样人们就可以(稍微)更快地找到答案......如果您正在创建一个gem,并且需要添加一个本地依赖项(在开发时),在
场景:我正在使用Bundler开发一个gemgem-foo。我对gem-bar有依赖性,我已经在本地检查了它以进行开发。我可以在Gemfile中将此依赖项声明为:gem"gem-bar",:path=>"/path/to/local/gem-bar"但是,在开发gem时,“最佳实践”似乎是通过以下方式在gem-foo.gemspec中定义所需的gem:s.add_runtime_dependency'gem-bar'然后简单地将依赖项包含在Gemfile中,使用:gemspec我想做的是在gemspec中添加对gem的运行时依赖性,但对gem-bar进行一些本地修改并进行bundlei
Invalidgemspecin[/usr/lib/ruby/gems/1.8/specifications/activemodel-3.2.0.gemspec]:Illformedrequirement["#3.2.0"]从尝试为其他问题进行sudogem更新当sudogemupdate遍历每个gem并为大多数gem获取消息时,获得数百次 最佳答案 升级到Rails3.2时可能会发生这种情况。更新Rubygems应该可以解决这个问题。gemupdate--system希望这对您有所帮助。
当您编写gemspec文件时,摘要和描述字段之间的实际区别是什么? 最佳答案 它们用在不同的地方。summary可以看到你执行gemlist-d,而description可以在http://rubygems.org上看到.描述“应该比摘要更详细”(http://guides.rubygems.org/specification-reference/),但实际上你看到了s.description=s.summary在.gemspec中有很多。 关于ruby-gemspec摘要和gemspe
我正在为现在需要Ruby1.9的新版本gem编写gemspec。以前版本的gem可以用于Ruby1.8,但现在需要1.9。有没有办法导致此版本gem的gem安装失败,并向尝试在Ruby1.8上安装它的用户发出警告? 最佳答案 来自RubyGemsdocumentation:#Thisgemwillworkwith1.8.6orgreater...spec.required_ruby_version='>=1.8.6'#Onlywithruby2.0.xspec.required_ruby_version='~>2.0'
在mygem.gemspec中是否可能有一个git分支依赖项?我在想类似下面的事情:gem.add_runtime_dependency'oauth2',:git=>'git@github.com:lgs/oauth2.git'...但它不起作用。 最佳答案 这是不可能的,而且可能永远不会,因为对于RubyGems来说,允许gem开发人员要求用户安装特定的版本控制系统来访问gem是相当严厉的。Gem应该是独立的,具有最少的依赖项,以便人们可以在尽可能广泛的应用程序中使用它们。如果您想为自己的内部项目执行此操作,我的建议是使用Bund
我创建了一个gem,它公开了一个在Linux下运行的可执行文件。在Windows中,如果我导航到安装gem的目录,我可以从命令行运行它,但我必须在调用ruby时自己指定-Ilib。我想使用Ocra将可执行文件+依赖项(gem的其余部分)+Ruby转换为供其他用户使用的exe文件,但文档似乎在说手动弄乱加载路径对Ocra来说不是一个好主意。我如何告诉Ocra使用gem的可执行脚本而不用自己弄乱Ruby的加载路径?我想这将取决于是否有某种方式可以运行可执行脚本,利用它们是已安装gem的一部分并为我找出依赖关系这一事实。 最佳答案 我的问
我想在gemspec中包含本地的“jar依赖项”,例如/opt/someplugin/lib/somejar.jar目前我发现在项目中使用本地jar文件的唯一方法是在*.rb文件中require/opt/someplugin/lib/somejar.jar它将使用jar依赖项查看DynamoDBgemspec的快照#Jardependenciess.requirements发生的事情是gem构建从maven存储库下载jar文件。我想使用位于我的文件系统中的本地jar实现相同的“效果”。可能看起来像我需要的命令示例:caution?notreal?gemspecline:s.requir