config.gem требует гем? - PullRequest
       5

config.gem требует гем?

2 голосов
/ 13 октября 2009

В моем файле environment.rb есть несколько операторов config.gem:

config.gem "fastercsv", :version => "~>1.5.0"
  config.gem "parseexcel", :version => "~>0.5.2"
  config.gem "geokit", :version => "~>1.4.1"
  config.gem "facebooker", :version => "~>1.0.50"

...

Если я сделаю «rake gems: install», я получу эту проблему: грабли прерваны! нет такого файла для загрузки - fastcsv

Ну ... я знаю, что нет такого файла для загрузки, потому что я пытаюсь установить его. Я подозреваю, что это может произойти из-за местоположения моего запроса. У меня есть модуль в моей директории lib:

module SmartContactsImporter

  require 'fastercsv'
  require 'parseexcel'
...

Возможно, Rails не нравится, когда я требую гем, но это кажется глупым, поскольку нет ничего плохого в том, чтобы ваш модуль зависел от гема. Есть идеи, как решить эту проблему?

UPDATE Оказывается, эта проблема также возникла с Mechanize, Geokit, и список продолжается. Немного странно, что config.gem не работает достаточно легко из коробки. К вашему сведению, я не замораживаю свои драгоценности.

Ответы [ 2 ]

2 голосов
/ 13 октября 2009

Если вы пропустите требование в SmartContactsImporter, это должно сработать (config.gem "fastercsv" выполнит требование для вас).

Вы можете обойти это, когда требуется require в environment.rb с:

begin
  require "rack/cache"
rescue LoadError
  STDERR.puts "not loaded rack/cache: #{$!}"
end

Это некрасиво, но делает свое дело.

0 голосов
/ 13 октября 2009

Вы не должны требовать внутри вашего модуля, config.gem потребует его для вас.

Существует также связанная проблема с config.gem, когда он пытается запросить зависимый драгоценный камень, который еще не установлен во время установки драгоценного камня, но, похоже, это еще не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...