Différence entre les plugins et les gemmes Ruby?

Quelle est la différence entre les plugins et les gemmes? Quelles sont les différentes utilisations de chacun? Où et pourquoi utiliser l'un par rapport à l'autre?

33
demandé sur Veger 2011-04-02 08:45:24

2 réponses

Gem

  • le Bijou est emballé application ruby en utilisant le système d'emballage défini par RubyGems .
  • Rails lui-même est un petit Bijou.

    gem Rails est installé dans jruby-1.0\lib\ruby\gemmes\1.8\gemmes\rails 1.2.3 comme:



    DIR bin

    DIR builtin

    68,465 CHANGELOG

    DIR configs

    DIR distribue

    DIR doc

    DIR environnements

    307 fresh_rakefile

    DIR helpers

    DIR html

    DIR lib

    1,072 MIT-LICENCE

    11,969 Rakefile

    8,001 README

    Le répertoire lib contient tout le code source gem.

  • nous pouvons installer,mettre à jour et interroger la version gem.Si on utilise un outil comme mon GemInstaller , on peut facilement automatiser l'installation et le chargement de RubyGems avec un simple fichier de configuration.

  • Gem installé pour Ruby interpreter peut être utilisé à l'échelle du système par cet interpréteur.
  • Gem peuvent être publiés en tant que plugin.
  • peut aussi être vendu dans vendeur/gemmes.

Plugin

  • Plugin est une extension du cadre de Rails.
  • ne peut pas être mis à jour en utilisant une commande. Pour mettre à niveau un doit désinstaller puis installer la version améliorée.
  • doit être accroché à l'application rails. (a init.rb)
  • Avoir une installation.dossier rb.
  • Plugin ne peut pas être publié en tant que gemme.
  • ne peut être utilisé que dans toutes les applications.

Goldspike plugin est installé dans vendeur\plugins\rails-l'intégration de répertoire de l'application:

7 089 build.xml

1,141 de LICENCE.txt

DIR plugins

6 675 pom.xml

1,447 README

DIR échantillons

plugins / goldspike directory se compose de

24 init.rb

25 installer.rb

DIR lib

549 Rakefile

536 README

DIR tasks

DIR test

Le répertoire lib contient tout le code source du plugin.

Gem vs Plugins

  • les Rails avaient un moyen de charger des plugins à partir du répertoire vendor/plugins/. Cela sera très probablement déprécié car Rails a ajouté le soutien pour le groupement des gemmes avec le projet dans le répertoire vendor/ gems/. Les versions gem de rspec sont celles qui sont destinés à un usage quotidien. On devrait aller avec ceux-ci à moins que vous supportez une application Rails dans le 1.2.x famille ou plus tôt.
  • il devient souvent plus rapide de s'enregistrer et de sortir d'un dépôt en utilisant des gemmes que vous n'incluez pas la bibliothèque dans votre application réelle. Il y a souvent des problèmes mineurs d'utilisation de Plugins liés à l'incompatibilité qui se pose en ce qui concerne les versions de logiciels au sein de l'équipe distribuée.
  • règle générale de base est faire des fonctionnalités spécifiques aux Rails un plugin tout en généralisant les bibliothèques Ruby en gemmes.
38
répondu Piyush Mattoo 2011-04-08 05:54:15

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 applications ou plus tournent sur le même serveur, elles peuvent partager des gemmes, mais chacune aura ses propres plugins. Pour l'instant, je vais en Suggérer un pour utiliser les gemmes, car ils sont plus faciles à maintenir que les applications échelle.

8
répondu serengeti12 2011-10-06 14:56:51