какая разница между гемом и плагином? - PullRequest
11 голосов
/ 23 ноября 2010

Я новичок в Rails и запутался в концепции гемов и плагинов. Кто-нибудь может мне их объяснить?

Ответы [ 3 ]

8 голосов
/ 23 ноября 2010

Плагины - это просто библиотеки, загруженные из определенного каталога, гемы загружаются через Bundler или RubyGems напрямую.

Где это действительно имеет значение - это обслуживание и управление.Что происходит, когда вам нужен самый последний и лучший плагин authlogic, вам нужно обновить файлы в вашем каталоге.Это не так уж плохо, когда это один плагин, но что насчет того, что постоянно обновляется?Существовала / существует существующая система для упаковки и распространения кода (RubyGems), которая пригодна для управления такими вещами.

Еще раз рассмотрим пример с аутентификацией, что произойдет, если новая версия теперь требует какой-то другой зависимости?С RubyGems файл gem явно определяет эту взаимосвязь, а система плагинов - нет, и такое определение было бы излишним.

С появлением Bundler в rails 3.x это стало оченьлегко управлять и распространять драгоценные камни, которые использует ваш проект.

TL; DR: Плагины - это, в основном, драгоценные камни без информации об упаковке.

1 голос
/ 23 ноября 2010

Плагины используются все реже, поэтому придерживайтесь драгоценных камней.Gems и плагины могут делать то же самое, поэтому они сбивают с толку.Однако различия заключаются в том, как они организованы, и, что наиболее важно, в управлении драгоценными камнями, такими как bundler или config.gem.Намного легче управлять драгоценными камнями и их версиями.Плагины должны быть установлены в папке vendor, где gems также может быть установлен в эту папку, если их необходимо настроить или они могут быть установлены в каталог gem, если rails понимает, где находится этот каталог.Когда начались рельсы, большинство людей использовали плагины для добавления функциональности, но разработчики быстро поняли, что гемы предложили лучший способ упаковки и обновления библиотек, поэтому большинство плагинов перешли на гемы, и было построено меньше плагинов.

0 голосов
/ 04 августа 2014

Gem and Plugin

гем хранится в файлах lib

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

плагины хранятся в поставщиках / плагинах

Плагин Rails - это упакованное Ruby-приложение, расширяющее базовую платформу Rails.

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