2010-09-30 10 views
3

Donc, quand vous avez installé bundler une gemme de github, il n'est pas effectivement installé, n'est-ce pas? gem list ne listera pas ces gemmes.Bundler et gems sur github

Ce qui m'amène à mon énigme: je travaille sur un script qui veut utiliser un de ces gemmes qui ne sont pas réellement installés. Maintenant quoi? Je pourrais vérifier manuellement le repo de github et construire/installer la gemme, mais maintenant j'ai une version étant gérée par bundler et un autre qui n'est pas. Je pourrais pointer le script vers le répertoire gem dans ~/.rvm mais ce n'est pas une bonne idée quand il s'agit d'aller en production. J'essaye de trouver une commande de bundler qui rendra n'importe quelles gemmes de github "enregistrent" avec des rubygems, mais rien jusqu'à présent. Aucune suggestion?

+2

Avez-vous essayé taper " bundle show agemthatdoesntshowingemlist "(remplacez agemthatdoesntshowingemlist par un gem qui n'apparait pas dans la liste gem) – hellvinz

+0

Bien sûr, cela indique l'emplacement de l'emplacement dans ~ ~/.rvm/gems' mais il n'est apparemment pas" enregistré "avec rubygems car 'require 'hiddengem'' ne fonctionne pas:' LoadError: aucun fichier de ce type à charger - hiddengem'. Comme je l'ai dit, je pourrais avoir besoin du chemin complet vers la gemme, et mon script fonctionnerait très bien sur mon système local, mais si je mets le code ailleurs, ça va se casser partout. –

Répondre

2

Ironiquement c'est la même réponse que la question précédente, je devais, que je me suis répondu avec cette même solution (même si elle était un peu différent dans Bundler 0,9):

require 'rubygems' 
require 'bundler/setup' 
require 'hiddengem' 

bundler/setup fait la Bundler « pile "disponibles comme s'ils étaient des gemmes régulièrement installées. Tôt ou tard, je m'en souviendrai. :)

0

rubygems-bundler est une gemme qui résout ce problème. S'il est installé sur votre système, vous ne devriez pas avoir besoin de code supplémentaire dans votre projet. Il faudra peut-être installé en tant que @global, donc, pour résumer:

$ rvm use @global 
$ gem install rubygems-bundler 

Et puis, pour revenir à la version RVM que vous utilisez:

$ rvm use @