2010-09-02 1 views
3

На http://github.com/collectiveidea/delayed_jobВ Ruby on Rails, в чем разница между установкой чего-либо как драгоценного камня или плагина?

он говорит:

Чтобы установить, как драгоценный камень, добавьте следующую строку в конфиге/environment.rb:
config.gem 'delayed_job'
Run rake gems:install

против

Чтобы установить в качестве плагина:
script/plugin install git://github.com/collectiveidea/delayed_job.git

В чем разница между установкой, как драгоценный камень, или как плагин?

Кроме того, первый способ просто установить gem 2.0.3, который может быть версией tobi? (rake gems:install устанавливает версию gem list -r delayed_job) Это http://github.com/tobi/delayed_job? Метод «плагин» специально говорит, что это версия collectidea? Не имеет значения, какой из них вы устанавливаете?

ответ

2

Это 2 разные repositorys, может быть, вы shoult попробовать

config.gem 'delayed_job', :source => http://github.com/collectiveidea/delayed_job.git 

Посмотрите на: http://ryandaigle.com/articles/2008/4/1/what-s-new-in-edge-rails-gem-dependencies

КСТАТИ. возможно, вы хотите посмотреть, может быть, лучшее решение: resque - см. http://ruby-toolbox.com/categories/queueing.html для сравнения подержанных драгоценных камней

+0

, кстати, если я Google 'delayed_job 2.0.3' есть ссылка на rubygems.org, которая ссылается на версию collectidea. –

1

Когда вы устанавливаете драгоценный камень, он будет доступен для всех приложений, если вы используете плагин - только для приложения он установлен.

4

Оба Gem и продаваемый плагин относятся к вилке collectidea. Фактически, collectidea является текущим поддерживающим устройством для Gem на RubyGems delayed_job.

Это, вообще говоря, установка плагинов как драгоценного камня имеет много преимуществ.

  • Вы можете установить его один раз и использовать его в различных проектах
  • Вы можете воспользоваться разрешением зависимостей
  • Вы можете обновить изменения номера версии
  • Вам не нужно хранить все код плагина в вашем SCM

Итак, почему вы можете установить плагин «как плагин»? Есть много разных ответов.

В самом начале плагины Rails появились как простые библиотеки. Прошло время, и разработчики начали замечать преимущества упаковки плагинов как Gem.

Кроме того, перед Rails 3 некоторые функции плагина были зарезервированы только для плагинов, а не для драгоценных камней.Например, до Rails 3 плагины могли объединять рейк-задачи, в то время как не было способа впрыскивать новые задачи рейка или новые маршруты в основное приложение.

В течение последних двух лет большая часть плагинов Rails предлагает возможность установки в виде плагина или как драгоценного камня. С Rails 3 и прибытием Bundler я уверен, что плагины будут устаревшими в пользу Gems.

0

Основное отличие - это то, что устанавливается в системе, запускающей приложение Rails, тогда как плагин устанавливается вместе с вашим приложением, плагин не устанавливается на системном уровне.

Предположим, вы используете rvm, и давайте возьмем этот пример.

мы имеем два приложения app1 и app2

оба работают на одном общем РВМ gemset имени gemset1

когда вы добавляете драгоценный камень в Gemfile из app1 и запустить пачке установить и затем находиться в том же rvm gemset, который равен gemset1, если вы запустите второе приложение app2, этот камень будет доступен в второе приложение, а

В то время как с помощью плагина это будет не так, потому что плагины получить установлен на уровне приложений, а не на системном уровне