Самый простой способ получить тринидад зависит от альтернативной версии 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, чтобы удовлетворить Тринидад и проверить, решена ли ваша проблема.