Cucumber-rails на jruby устанавливает gem в корневой каталог моих приложений с помощью бандлера

Только что установил cucumber 0.7.2 и cucumber-rails 0.3.1 с jruby-1.4.0 на OSX. Когда я запускаю установку пакета, он помещает каталог cucumber-rails в мое основное приложение со всем кодом / зависимостями gem.

Во-первых, это точно не то, что я хочу, и я не уверен, почему это происходит только с огуречными рейками.

Во-вторых, если я удалю эту папку и просто вручную установлю огурцы-рельсы, когда я запускаю script/generate feature blah, я получаю

/Users/bradrobertson/.rvm/rubies/jruby-1.4.0/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:344:in `refresh!': source index not created from disk (RuntimeError)
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/vendor_gem_source_index.rb:34:in `refresh!'
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/vendor_gem_source_index.rb:29:in `initialize'
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/gem_dependency.rb:21:in `new'
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/gem_dependency.rb:21:in `add_frozen_gem_path'
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/initializer.rb:298:in `add_gem_load_paths'
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/initializer.rb:132:in `process'
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/initializer.rb:113:in `run'
    from /Users/bradrobertson/Repos/app/source/trunk/config/environment.rb:13
    from /Users/bradrobertson/Repos/app/source/trunk/config/environment.rb:1:in `require'
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/commands/generate.rb:1
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/commands/generate.rb:3:in `require'
    from script/generate:3

Аналогично запустив rake cucumber получаю

rake aborted!
source index not created from disk

Так что что-то явно не работает. Если я снова добавлю этот каталог cucumber-rails, мой rake cucumber действительно запустится.

Может ли кто-нибудь сказать мне, зачем устанавливать драгоценный камень прямо в мое приложение rails? Я такого раньше не видел.

настройка
jruby-1.4.0
огурца-0.7.2
огурцов-рельсов 0.3.1
bundler 0.9.23
webrat 0.7.1

ИЗМЕНИТЬ

Чтобы добавить к этому, я решил, что мне надоело пытаться заставить это работать, поэтому я удалил все deps огурцов / огурцов из моего Gemfile и перезапустил bundle install. Он по-прежнему создает каталог cucumber-rails, и, кроме того, я не могу ничего запускать, если этот каталог не присутствует (rake и т. Д.), Иначе я получаю сообщение source index not created from disk.

EDIT2 Я только что заметил, что в моем Rails.root/.bundle/config есть BUNDLE_PATH: cucumber-rails. Кто-нибудь знает, почему это могло быть там?


person brad    schedule 06.05.2010    source источник


Ответы (2)


Это связано с тем, как вы устанавливаете вещи с помощью Bundler.

вы, наверное, сделали что-то вроде:

связка установка огурцов-перил

Если вы делаете этот пакет, предполагается, что вы хотите продавать свой пакет в этом каталоге внутри вашего проекта.

ваш .bundle / config, вероятно, должен просто содержать:


BUNDLE_DISABLE_SHARED_GEMS: «1»

Удаляя эту папку, вы фактически удаляете свой пакет.

Просто измените это, как указано выше, и запустите:

установка пакета.

person Brent Greeff    schedule 07.04.2011
comment
вау совершенно забыл об этом вопросе, да, вы абсолютно правы, я случайно начал изучать исходный код бандлера буквально на днях и понял, что здесь происходит. Спасибо, что обратил на это мое внимание! - person brad; 07.04.2011

Мне удалось получить приложение с нуля, работающее со следующими жемчужинами:

$ jruby -S gem list

*** LOCAL GEMS ***

actionmailer (2.3.5)
actionpack (2.3.5)
activerecord (2.3.5)
activerecord-jdbc-adapter (0.9.6)
activeresource (2.3.5)
activesupport (2.3.5)
builder (2.1.2)
bundler (0.9.25)
cucumber (0.7.2)
cucumber-rails (0.3.1)
database_cleaner (0.5.2)
diff-lcs (1.1.2)
gherkin (1.0.24)
jdbc-sqlite3 (3.6.3.054)
jruby-openssl (0.7)
json_pure (1.4.3)
nokogiri (1.4.1)
rack (1.0.1)
rack-test (0.5.3)
rails (2.3.5)
rake (0.8.7)
term-ansicolor (1.0.5)
trollop (1.16.2)
webrat (0.7.1)

Мне пришлось обновиться до Bundler 0.9.25, и я выполнил инструкции по использованию Bundler с Rails 2:

http://gembundler.com/rails23.html

Вот как выглядел мой Gemfile:

source :gemcutter
gem "rails", "~> 2.3.5"
gem 'activerecord-jdbc-adapter', :require => false
gem 'jdbc-sqlite3', :require => false

group :development do
end

group :test do
  gem 'cucumber-rails'
  gem 'webrat'
  gem 'database_cleaner'
end
person Nick Sieger    schedule 07.05.2010
comment
эй, извини, у меня не было времени проверить это, я займусь этим, когда смогу - person brad; 14.05.2010