Самый простой способ получить тринидад зависит от альтернативной версии jruby-rack?

Текущий драгоценный камень Тринидада зависит от 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 ответ

TL;DR - не совсем. Вам нужно будет построить один или оба проекта или получить помощь от jruby-rack команда в виде релиза. Смотрите внизу для шагов сборки.


В текущих версиях Trinidad (предварительный выпуск 1.4.4 и 1.4.5B1) используется jruby-rack с оптимистичным версионированием (>= 1.1.10 а также >= 1.1.13соответственно), поэтому любая зависимость, которая удовлетворяет этому (скажем, 1.2.0), будет иметь приоритет, не затрагивая Тринидад.

К сожалению, из-за того, как JAR упакован, git: или же github: зависимость не будет работать. Вы должны будете построить драгоценный камень самостоятельно. Это не так уж и плохо - вам действительно нужен 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

После этого вы можете использовать gem 'jruby-rack', '~> 1.2.0.SNAPSHOT' в вашем Gemfile, чтобы удовлетворить Тринидад и проверить, решена ли ваша проблема.

Другие вопросы по тегам