2010-04-10 2 views
2

Mon VCR gem dépend actuellement de FakeWeb. Je l'ai declared as a dependency in my gemspec. Je travaille avec l'auther de WebMock (une bibliothèque qui fournit des fonctionnalités similaires à FakeWeb) pour que VCR fonctionne également avec WebMock, de sorte que les utilisateurs de VCR puissent utiliser FakeWeb ou WebMock comme bibliothèque de stubbing http.Ruby Gems Soit/Or Dépendance?

Quand vient le temps de sortir la prochaine version de VCR, je ne suis pas sûr de la meilleure façon de gérer ces dépendances. VCR dépendra soit de WebMock, soit de FakeWeb (mais n'a pas besoin des deux), et aura certaines exigences de version pour les deux. Je pourrais ajouter les deux en tant que dépendances à mon gemspec, mais quand vous employez bundler, il enchaîne toutes les dépendances de gem - ainsi FakeWeb et Webmock seront rassemblés avec l'application. J'ai pensé que peut-être je ne déclarerai pas gem comme une dépendance, et vérifier la présence de l'une ou l'autre bibliothèque à l'exécution (avec la vérification de la version), et donner à l'utilisateur un message d'erreur utile si aucun n'est présent sur une version prise en charge. Mais je ne suis pas vraiment sûr que j'aime cette approche non plus.

Est-ce que quelqu'un a une suggestion pour la meilleure façon de gérer une dépendance de l'un ou de la gemme?

Merci!

Répondre

2

puisqu'il n'est pas possible de déclarer des dépendances/ou, je pense que ne pas spécifier de dépendance dans votre gemspec et vérifier la présence de l'une ou l'autre bibliothèque au moment de l'exécution est la solution.

Questions connexes