4

現在の 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) マスター ブランチで明らかに解決されている問題であり、trinidad をこれに依存させたいと考えています。

Gemfile 内からこれを行う方法はありますか? または、Trinidad gem を fork して別のバージョンの jruby-rack を指定するよりも簡単な別の解決策 (そして、動作しない可能性があるため動作することを望みます)。

4

1 に答える 1

2

TL;DR - そうではありません。どちらかまたは両方のプロジェクトをビルドするかjruby-rack、リリースを通じてチームの助けを借りる必要があります。ビルド手順については、下部を参照してください。


現在の Trinidad バージョン ( 1.4.4および 1.4.5B1 プレリリース) はjruby-rack、楽観的なバージョン管理 (それぞれ>= 1.1.10および) を使用して>= 1.1.13いるため、これを満たす依存関係 (たとえば、1.2.0) は、Trinidad に触れなくても優先されます。

残念ながら、JAR のパッケージ方法が原因で、git:またはgithub:依存関係は機能しません。gem を自分でビルドする必要があります。これはそれほど悪いことではありません。必要なのは、JDK/JRuby のセットアップ以外に Maven だけです。

変更を加えてビルド/リリースされると、 Gemfilejruby-rackで実行可能なバージョンを指定できるようになります (バージョン 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

gem 'jruby-rack', '~> 1.2.0.SNAPSHOT'この後、 Trinidad を満たすために Gemfile で使用して、問題が解決したかどうかをテストできます。

于 2013-03-28T20:37:22.827 に答える