Quelle est la différence entre les plugins et les gemmes ? Quelles sont les différentes utilisations de chacun ? Où et pourquoi utiliseriez-vous l'un plutôt que l'autre ?
Réponses
Trop de publicités?Gem
-
Gem est une application ruby empaquetée utilisant le système d'empaquetage défini par RubyGems .
-
Rails lui-même est un Gem.
La gemme Rails est installée dans jruby-1.0 \lib\ruby\gems\1.8\gems\rails -1.2.3 comme :
DIR bin
DIR intégré
68 465 CHANGELOG
DIR configs
DIR dépêches
DIR doc
DIR environnements
307 fresh_rakefile
DIR aides
DIR html
DIR lib
1 072 MIT-LICENCE
11 969 Rakefile
8 001 LISEZ-MOI
Le répertoire lib contient tout le code source de la gemme. -
Nous pouvons installer, mettre à jour et interroger la version de la gemme. GemInstaller Avec RubyGems, on peut facilement automatiser l'installation et le chargement de RubyGems avec un simple fichier de configuration.
-
Gem installé pour l'interpréteur Ruby peut être utilisé par cet interpréteur sur l'ensemble du système.
-
Gem peut être publié en tant que plugin.
-
Peut également être vendue dans le vendeur/gems.
Plugin
- Le plugin est une extension de Rails Framework.
- Ne peut pas être mis à niveau en utilisant une commande. Pour mettre à jour, il faut désinstaller puis installer la version mise à jour.
- Il doit être relié à l'application rails. (doit avoir init.rb)
- Avoir un fichier install.rb.
- Le plugin ne peut pas être publié en tant que Gem.
- Ne peut être utilisé qu'au niveau de l'application.
Le plugin Goldspike est installé dans le vendeur \plugins\rails -répertoire d'intégration de l'application comme :
7 089 build.xml
1 141 LICENSE.txt
DIR plugins
6 675 pom.xml
1 447 README
DIR échantillons
Le répertoire plugins/goldspike se compose de
24 init.rb
25 install.rb
DIR lib
549 Rakefile
536 README
DIR tâches
DIR test
Le répertoire lib contient tout le code source du plugin.
Gem et plugins
- Rails avait un moyen de charger les plugins depuis le répertoire vendor/plugins/. Cette méthode sera très probablement obsolète car Rails a ajouté le support des gems groupés avec le projet dans le répertoire vendor/gems/. Les versions gemmes de rspec sont celles qui sont destinées à un usage quotidien. Il convient de les utiliser, sauf si vous prenez en charge une application Rails de la famille 1.2.x ou antérieure.
- L'archivage et le désarchivage d'un dépôt sont souvent plus rapides avec les Gems car vous n'incluez pas la bibliothèque dans votre application. Les problèmes liés à l'incompatibilité des versions de logiciels au sein de l'équipe distribuée sont souvent moins nombreux avec les plugins.
- La règle générale est de faire de la fonctionnalité spécifique à Rails un plugin tout en faisant des bibliothèques Ruby plus générales des gems.
Les gemmes sont installées au niveau du système tandis que les plugins sont installés au niveau de l'application. Cela signifie que si deux ou plusieurs applications sont exécutées sur le même serveur, elles peuvent partager des gemmes, mais chacune aura ses propres plugins. Pour l'instant, je vous suggère d'utiliser les gems, car ils sont plus faciles à maintenir lorsque les applications évoluent.