Workflow de développement Gem

Je travaille sur un fork de quelqu’un qui est un utilitaire de ligne de commande. Voici un aperçu général de la structure du répertoire:

bin/ bin/foo lib/ lib/foo.rb lib/foo/bar.rb (etc) 

Pour le tester, je fais normalement quelque chose comme ceci:

 cd bin/ ./foo  

Mais je veux pouvoir l’utiliser depuis n’importe quel répertoire (comme s’il était installé une fois). Ma question est de savoir s’il est possible d’y parvenir sans installer le bijou sur mon système à chaque fois.

Ma première tentative a été de créer un lien symbolique vers le script foo qui se trouvait sur mon PATH, mais cela gâche la ligne require 'foo' dans le script, puisque File.dirname(__FILE__) fait désormais référence à l’endroit où le lien symbolique a été créé. .

Y a-t-il une manière commune de le faire?

(Oh, et voici les lignes pertinentes du script foo )

 #!/usr/bin/env ruby $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib') require 'rubygems' require 'foo' 

(MODIFIER)

Je suis conscient des moyens normaux de tester une bibliothèque ( rake test , etc.) – Je suis particulièrement intéressé par l’utilisation du script depuis n’importe quel répertoire sans réinstaller la gem à chaque modification (si possible).

Dans presque tous les joyaux que j’ai examinés, il existe un fichier de rakefile. Dans ce cas, vous allez à la racine du joyau et allez:

 rake test 

Pour une liste de tâches, utilisez:

 rake -T 

(Cela suppose que vous avez installé rake en premier lieu, évidemment: gem install rake sinon.)

En outre, beaucoup de gemme comportent également un gemfile. Dans ce cas, vous pouvez utiliser Bundler pour installer les dépendances applicables (en particulier les suites de tests et les gemmes liées au développement).