让trinidad最简单的方法是依赖于jruby-rack的替代版本?

时间:2013-03-12 19:57:12

标签: jruby jrubyonrails jruby-rack trinidad-gem

当前的Trinidad gem取决于jruby-rack 1.1.0,我的开发日志中显示了每个资产的一些错误

/Users/bijan/.rvm/gems/jruby-1.7.3/gems/rack-1.4.5/lib/rack/utils.rb:399 warning: multiple values for a block parameter (2 for 1)

这个问题在目前的jruby-rack(1.2)主分支中已经明显解决了,我想让特立尼达依赖于此。

有没有办法在我的Gemfile中执行此操作?或者是另一个更简单的解决方案,而不是分配特立尼达宝石并指定不同版本的jruby-rack(并希望它可以工作,因为它可能不会)。

1 个答案:

答案 0 :(得分:2)

TL; DR - 不是真的。您需要构建一个或两个项目,或通过发布从jruby-rack团队获得一些帮助。请参阅底部了解构建步骤。


当前的特立尼达版本(1.4.4和1.4.5B1预发布版)使用jruby-rack和乐观版本控制(分别为>= 1.1.10>= 1.1.13),因此任何满足此要求的依赖项(比方说,1.2.0)优先考虑,而不会触及特立尼达。

不幸的是,由于JAR的打包方式,git:github:依赖关系不起作用。您需要自己build the gem。这不是太糟糕 - 你真的只需要Maven,而不是正常工作的JDK / JRuby。

使用更改构建/发布jruby-rack后,将能够在Gemfile中指定可行的版本(假设版本为1.2.0):

gem 'jruby-rack', '~> 1.2.0'
gem 'trinidad'

也许jruby-rack团队可以将此特定更改反向移植到1.1.13维护行,如果不引入不兼容性,则推送1.1.13.2版本。或者他们可能愿意从主人那里做一个预发布。


我没有测试资产是否正常工作,但构建和指定本地版本相对容易:

# Assuming mvn is on the path, JRuby is active, and you
# have gem install permissions:
git clone https://github.com/jruby/jruby-rack.git
cd jruby-rack
bundle install
bundle exec rake clean gem SKIP_SPECS=true
gem install --local target/jruby-rack-1.2.0.SNAPSHOT.gem

在此之后,您可以在Gemfile中使用gem 'jruby-rack', '~> 1.2.0.SNAPSHOT'来满足Trinidad并测试您的问题是否已解决。