В чем разница между плагинами и гемами? Каковы разные варианты использования каждого из них? Где и почему вы бы использовали одно вместо другого?
Разница между плагинами и драгоценными камнями Ruby?
Ответы (2)
Самоцвет
- Gem - это упакованное ruby-приложение, использующее систему упаковки, определенную RubyGems.
- # P2 #
# P3 #
Мы можем установить, обновить и запросить версию гема. Если использовать такой инструмент, как мой GemInstaller, можно легко автоматизировать установку и загрузку RubyGems с помощью одного простого файла конфигурации.
- Gem, установленный для интерпретатора Ruby, может использоваться этим интерпретатором в рамках всей системы.
- Gem может быть опубликован как плагин.
- Также можно продавать в магазине / драгоценных камнях.
Плагин
- Плагин является расширением Rails Framework.
- Невозможно обновить с помощью команды. Для обновления необходимо удалить, а затем установить обновленную версию.
- Должен быть прикреплен к рельсам. (должен быть init.rb)
- Есть файл install.rb.
- Плагин нельзя опубликовать как Gem.
- Может использоваться только в приложении.
Плагин Goldspike устанавливается в каталоге vendor \ plugins \ rails-integration приложения как:
7,089 build.xml
1,141 LICENSE.txt
DIR plugins
6675 pom.xml
1447 README
DIR samples
каталог plugins / goldspike состоит из
24 init.rb
25 install.rb
DIR lib
549 Rakefile
536 README
DIR задач
DIR test
Каталог lib содержит весь исходный код плагина.
Gem против плагинов
- У Rails был способ загрузки плагинов из каталога vendor / plugins /. Скорее всего, это будет устаревшим, поскольку Rails добавила поддержку объединения гемов с проектом в каталоге vendor / gems /. Гем-версии rspec предназначены для повседневного использования. Их следует использовать, если вы не поддерживаете приложение Rails в семействе 1.2.x или ранее.
- Часто становится быстрее регистрироваться и выписываться из репозитория с помощью Gems, поскольку вы не включаете библиотеку в свое фактическое приложение. При использовании подключаемых модулей часто возникают меньшие проблемы, связанные с несовместимостью версий программного обеспечения в распределенной команде.
- Общее практическое правило - сделать специфичную для Rails функциональность плагином, а более общие библиотеки Ruby превратить в драгоценные камни.
Драгоценные камни устанавливаются на системном уровне, а плагины устанавливаются на уровне приложений. Это означает, что если два или более приложения работают на одном сервере, они могут совместно использовать драгоценные камни, но у каждого будут свои собственные плагины. А пока я предлагаю использовать драгоценные камни, так как их легче поддерживать при масштабировании приложений.