我正在为现在需要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
我正在使用bundler的:path=>'/path/to/gem'功能来构建和使用修改后的上游gem,它使用Rake::FileList在其.gemspec中。在这个阶段,我正在安装的bundle还没有激活,或者可能是安装顺序禁止bundler使用rake。我正在使用ruby1.8.7。我的gem文件:source'http://rubygems.org'gem"rake"gem"foreign_gem",:path=>'/home/user/src/foreign_gem'我得到的错误:$bundleinstallUnfortunately,afatalerrorhasoccu
通过Google梳理后,我知道我的项目的gemspec文件是什么,但我不知道为什么我们需要它,我想我是寻找实用的定义。(目前正在学习ZedShaw的LearnRubytheHardWay,这是学习问题之一) 最佳答案 据官方RubyGemssite:Thegemspecdefineswhat’sinthegem,whomadeit,andtheversionofthegem.It’salsoyourinterfacetoRubyGems.org.Alloftheinformationyouseeonagempage(likejeky
创建gem时什么是最好的:在gemspec中将版本定义为字符串,或者引用存储在SomeGem/version中的SomeGem::VERSION常量作为版本?我知道我可以做任何一个,但我想了解什么是最佳实践以及为什么是这样。如果还有其他我不熟悉的方式,请告诉我。谢谢 最佳答案 正如您所指出的,它们都是以不同的方式达到相同的目的,但最佳实践(以及运行bundlegem时的默认行为)是(2):引用SomeGem::VERSION。这种方法有几个优点:Gem版本始终可用:putsMygem::VERSION#=>0.0.1如果我只想查看版
我有一个应用程序,其Gemfile需要一个gem,该gem还依赖于当前在github上找到的另一个gem。所以app/Gemfile读取gem"my-gem",:git=>"git://github.com/MyCompany/my-gem.git"my-gem/Gemfile读取gem"my-gem-2",:git=>"git@github.com:MyCompany/my-gem-2.git"my-gem/my-gem.gemspec读取spec.add_dependency"my-gem-2"当我在应用程序内部运行bundle时,我得到一个错误,它找不到my-gem所需的gemm
关于gemspecs的文件列表。我注意到珠宝商使用项目中的文件列表手动更新此列表。例如Gem::Specification.newdo|s|#stuffs.files=["lib/somegem.rb","README.md"]#...morestuffend是否有任何证据表明使用gitls-files或Dir.glob('**/*')动态生成gemspec的文件列表会影响性能在项目(尤其是Rails项目)中使用Gem时出现问题?例如?Gem::Specification.newdo|s|#stuffs.files=`gitls-files`.split("\n")#...morest
我正在构建一个使用rails-assets-growlgem的gem。可以使用不同于'https://rubygems.org'的源将此gem添加到我的Gemfile,如下所示:source'https://rails-assets.org'dogem'rails-assets-growl'end这在开发模式下工作正常。但是,当我在rubygems.org中发布我的gem时,growlgem没有作为依赖包含在内。Ithink,thisisbeacuseIneedtospecifythehttps://rails-assets.orgsourceingemspecinsteadofGem