2010-11-30 6 views
5

Dans le TextMate RVM instructions le texte il est dit de mettre TM_RUBY-/Users/wayne/.rvm/bin/textmate_ruby et the image il le montre la valeur rvm-auto-ruby. J'ai décidé de le mettre à rvm-auto-ruby en pensant qu'il utiliserait la version Ruby par défaut de RVM.TextMate, RVM et TM_RUBY

Lors de l'exécution Command R dans le RSpec.bundle ayant TM_RUBY ensemble à rvm-auto-ruby entraînera une load error. Lorsque vous le définissez sur textmate_ruby cela fonctionne.

Le seul problème ici est que TextMate n'utilise pas toujours la version par défaut de Ruby car elle est codée en dur dans ce fichier.

/Users/jspooner/.rvm/bin/textmate_ruby:

#!/usr/bin/env bash 

if [[ -s "/Users/jspooner/.rvm/environments/ruby-1.9.2-head" ]] ; then 
    source "/Users/jspooner/.rvm/environments/ruby-1.9.2-head" 
    exec ruby "[email protected]" 
else 
    echo "ERROR: Missing RVM environment file: '/Users/jspooner/.rvm/environments/ruby-1.9.2-head'" >&2 
    exit 1 
fi 

Alors deux questions:

  1. Que faut-TM_RUBY=rvm-auto-ruby faire réellement?
  2. Existe-t-il un moyen pour que TextMate utilise le RVM par défaut?

Répondre

7

Voir votre autre, similaire, question Rspec bundle is broken in TextMate and rvm.


Pour aider les autres courir après ce même problème, la solution semble être à: RVM/Textmate doesnt recognize .rvmrc Options.

Fondamentalement, vous remplacez le lien logiciel ~/.rvm/bin/textmate_ruby par un fichier. Voilà ce que je l'ai fait:

  1. cd ~/.rvm/bin
  2. mv textmate_ruby old.textmate_ruby
  3. Créer un script shell appelé textmate_ruby dans le même répertoire pour remplacer le lien doux, en utilisant le contenu suivant:
     
    
    

    !/usr/bin/env sh

    source ~/.rvm/scripts/rvm cd . exec ruby "[email protected]"
  4. chmod +x textmate_ruby

Avant de faire cette modification je verrais mon système la version de Ruby (1.8.7) affichée si je l'ai fait CMD +R pour exécuter le script suivant dans TextMate:

puts RUBY_VERSION 

L'évaluation du script en utilisant CMD + CNTRL + SHIFT +E m'a donné 1.9.2. Après avoir basculé pour utiliser ce script, ils pointent tous deux vers Ruby 1.9.2, donc il y a au moins une certaine cohérence maintenant. Je ne vois pas TextMate suivre ma version RVM Ruby actuellement définie; Au lieu de cela, il utilise la version par défaut définie dans RVM: rvm use 1.9.2 --default. C'est encore un pas en avant car je peux contrôler quel Ruby TextMate utilise en ajustant mon --default.

Si vous décidez de revenir ultérieurement, il vous suffit de renommer ou de supprimer le script et d'annuler l'étape 2 ci-dessus.

+0

Merci, cela a fonctionné. J'ai aussi dû supprimer la variable de shell 'PATH' de TextMate. Je ne sais pas comment cela interagissait ou pourquoi je l'avais mis là auparavant (je ne me souviens pas), mais en supprimant cela m'a aidé. –

10

Réglage TM_RUBY à your-path/rvm-auto-ruby

http://rvm.io/integration/textmate/

devrait charger tout rubis et gemset est indiqué dans le fichier .rvmrc situé dans le projet et si aucun défaut à défaut de RVM. Je viens de faire fonctionner ça et c'est très lisse. J'avais besoin d'obtenir la dernière version de rvm

rvm get head 

pour le faire fonctionner et redémarrer Textmate. J'espère que cela pourra aider.

+0

Oui, c'est votre avis. Ce message est assez ancien et depuis, j'utilise cette méthode. – jspooner

+1

Vous pouvez également ajouter '/ Users/nom d'utilisateur/.rvm/bin' à votre TextMate' PATH' et ensuite simplement utiliser 'rvm-auto-ruby' comme votre 'TM_RUBY' –

+0

cela n'aide pas avec les exécutables gem –