Cucumber-rails на jruby устанавливает гем в корневой каталог моих приложений с помощью bundler - PullRequest
2 голосов
/ 06 мая 2010

Только что установлен 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
связка 0.9.23
вебрат 0.7.1

EDIT

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

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

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

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

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

комплект для установки огурцов-направляющих

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

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


BUNDLE_DISABLE_SHARED_GEMS: "1"

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

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

комплект поставки.

0 голосов
/ 07 мая 2010

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

$ 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
...