2010-11-23 7 views
11

Je suis nouveau à Rails et je suis confus au sujet du concept de gems & plugins. Quelqu'un peut-il les expliquer pour moi?quelle est la différence entre gem et plugin?

+0

duplication possible de [Dans Ruby on Rails, quelle est la différence entre l'installation de quelque chose comme une gemme ou comme un plugin?] (Http://stackoverflow.com/questions/3629919/in-ruby-on-rails-whats- la-différence-entre-installer-quelque-chose-comme-un-gem-ou) –

Répondre

1

Les plugins sont de moins en moins utilisés pour les gemmes. Les gemmes et les plugins peuvent faire exactement la même chose, c'est pourquoi ils sont déroutants. Cependant, les différences sont comment ils sont organisés et surtout comment les gemmes sont gérés tels que bundler ou config.gem. Il est beaucoup plus facile de gérer les gemmes et leurs versions. Les plugins doivent être installés dans le dossier vendorgems peut également être installé dans ce dossier s'ils doivent être personnalisés ou s'ils peuvent être installés dans un répertoire de gem aussi longtemps que les rails comprennent où se trouve ce répertoire. Lorsque les rails ont démarré, la plupart des gens utilisaient des plugins pour ajouter de la fonctionnalité, mais les développeurs ont rapidement compris que les gemmes offraient un meilleur moyen de regrouper et de mettre à jour les bibliothèques, de sorte que la plupart des plugins migraient vers les gemmes.

8

Les plugins sont simplement des bibliothèques chargées à partir d'un répertoire spécifique, les gemmes sont directement chargées via Bundler ou RubyGems.

Là où cela fait vraiment une différence est la maintenance et la gestion. Que se passe-t-il lorsque vous voulez le plugin authlogic le plus récent et le plus performant, et bien vous devez mettre à jour les fichiers dans votre répertoire. Cela ne semble pas si grave quand il s'agit d'un plugin, mais qu'en est-il quelque chose qui met à jour constamment? Il y avait/existe un système existant pour l'emballage et la distribution de code (RubyGems), qui se prête à la gestion de telles choses.

Considérez à nouveau l'exemple authlogic, que se passe-t-il si la nouvelle version nécessite maintenant une autre dépendance? Avec RubyGems, le fichier gem définit explicitement cette relation, ce qui n'est pas le cas du système plugin et une telle définition aurait été redondante. Avec l'avènement de Bundler dans les rails 3.x, il est devenu très facile de gérer et de distribuer les gemmes utilisées par votre projet. TL: DR: Les plugins sont essentiellement des gemmes sans les informations d'emballage.

-1

Gem et Plugin

bijou est stocké dans des fichiers lib

A Gem est une application Ruby emballé à l'aide du système d'emballage défini par RubyGems.

plug-ins sont stockés dans des fournisseurs/modules externes

un plugin Rails est une application Ruby emballé qui étend le cadre des rails de base.

Questions connexes