Dépendances conditionnelles des gemmes
Question
Est-il possible de définir conditionnellement une dépendance sur une gemme au moment de l'installation ?Voici ma situation qui, je l'espère, clarifiera la question.
Il y a une gemme que je maintiens qui dépend de la gemme json.Cependant, j'utilise fréquemment jruby qui possède un portage de la gemme json appelé json-jruby.Pour contourner ce problème, je dois créer deux gemmes distinctes pour chaque dépendance.J'aimerais créer une gemme qui indique soit qu'elle dépend de json OU de json-jruby, soit qu'elle vérifie au moment de l'installation et utilise la bonne dépendance.
Quelqu'un a-t-il une bonne solution à ce problème ?
La solution
Hmm,
Je pense que l’on peut coder plusieurs dépendances parce que j’ai remarqué des gemmes qui semblaient faire cela. Mais je vous déconseille de le faire. Aussi simple que soit le code que vous insérez ici, le fait de charger une gemme, qui dépend d’une autre, dépend de l’autre, même un petit problème avec la logique d ’un morceau de code peut rendre le tout la dépendance entraîne un cauchemar.
Alors, je laisserais votre kludge tel quel. De plus, je suggérerais que vous ayez une archive que les utilisateurs peuvent télécharger. J'ai dû extraire manuellement le code à l'intérieur de gems dont le code de configuration ne me permettait pas de les installer.
Autres conseils
consultez un petit tutoriel ici : http://wiki.github.com/rdp/ruby%5Ftutorials%5Fcore/gem
il montre comment installer différentes versions de dépendances en fonction de la version de Ruby utilisée par l'installateur.
(réponse courte : ce n'est pas aussi simple qu'il devrait l'être)