Разница между плагинами и драгоценными камнями Ruby? - PullRequest
33 голосов
/ 02 апреля 2011

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

Ответы [ 2 ]

39 голосов
/ 02 апреля 2011

Gem

  • Gem - это упакованное приложение ruby, использующее систему упаковки, определенную RubyGems .
  • Рельсы - это самоцвет.

    Rails gem устанавливается в jruby-1.0 \ lib \ ruby ​​\ gems \ 1.8 \ gems \ rails-1.2.3 как:

    DIR корзина
    DIR встроенный
    68 465 CHANGELOG
    DIR конфиги
    DIR отправка
    DIR документ
    DIR окружение
    307 fresh_rakefile
    DIR помощники
    DIR html
    DIR lib
    1,072 MIT-LICENSE
    11 969 Rakefile
    8 001 README
    Каталог lib содержит весь исходный код gem.

  • Мы можем устанавливать, обновлять и запрашивать версию gem. Если используется такой инструмент, как мой GemInstaller , можно легко автоматизировать установку и загрузку RubyGems с помощью одного простого файла конфигурации.

  • Gem, установленный для интерпретатора Ruby, может использоваться этим интерпретатором в масштабе всей системы.
  • Gem может быть опубликован как плагин.
  • Может также продаваться у продавца / драгоценных камней.

Plugin

  • Плагин является расширением Rails Framework.
  • Невозможно обновить с помощью команды. Для обновления необходимо удалить, а затем установить обновленную версию.
  • Должен быть подключен к приложению рельсов. (должен иметь init.rb)
  • Иметь файл install.rb.
  • Плагин не может быть опубликован как драгоценный камень.
  • Может использоваться только для всего приложения.

Плагин Goldspike устанавливается в каталоге vendor \ plugins \ rails -gration приложения как:
7 089 build.xml
1,141 LICENSE.txt
DIR плагины
6 675 pom.xml
1,447 README
DIR образцы
Каталог плагинов / goldspike состоит из
24 init.rb
25 install.rb
DIR lib
549 Rakefile
536 README
DIR заданий
DIR тест
Каталог lib содержит весь исходный код плагина.

Gem vs Plugins

  • В Rails был способ загрузки плагинов из каталога vendor / plugins /. Скорее всего, это будет устаревшим, так как Rails добавил поддержку связывания гемов с проектом. в каталоге vendor / gems /. Версии rspec для драгоценных камней предназначены для повседневного использования. С ними следует соглашаться, если только вы не поддерживаете приложение Rails в семействе 1.2.x или более ранних.
  • Зачастую регистрация и извлечение хранилища с использованием Gems становится быстрее, поскольку вы не включили библиотеку в свое реальное приложение. При использовании плагинов часто возникают меньшие проблемы, связанные с несовместимостью версий программного обеспечения среди распределенной группы.
  • Общее правило заключается в том, чтобы сделать специфичные для Rails функциональные возможности плагином, в то же время превращая более общие библиотеки Ruby в гемы.
9 голосов
/ 06 октября 2011

Gems устанавливаются на уровне системы, а плагины устанавливаются на уровне приложения. Это означает, что если два или более приложений работают на одном сервере, они могут совместно использовать гемы, но у каждого будут свои собственные плагины. А пока я предлагаю использовать гемы, так как их легче поддерживать в масштабе приложений.

...