2010-09-07 3 views
9

Lorsque j'essaie d'exécuter des tests à partir de TextMate dans Rails3, j'obtiens une erreur que je reporte à boot.rb. Lorsque je tente de lancer boot.rb via TextMate Je reçois cette erreur:Textmate Rails3 aucun fichier de ce type à charger - bundler

LoadError: no such file to load — bundler 

method gem_original_require in custom_require.rb at line 31 
method require in custom_require.rb at line 31 
at top level in boot.rb at line 4 

C'est même dans un tout nouveau projet de rails. Je suis en mesure d'exécuter le même fichier boot.rb du terminal appelant

ruby <path_to>/boot.rb 

Je peux vérifier que ma variable TM_RUBY est le même que lorsque j'appelle which ruby de la ligne de commande. Avez-vous la moindre idée de la raison pour laquelle je pourrais avoir cette erreur?

+0

(commentait ajouter que nous avons établi que oui, le petit bijou de Bundler est installé.) – pjmorse

+1

pourrait être la variable d'environnement GEM_PATH ne pas être mis ..? – mikeycgto

+0

On dirait que quelque chose est mal configuré dans vos tests et sans backtrace suffisante, je ne pense pas que je peux aider plus loin. En outre, essayez de mettre à jour les ensembles dans Textmate car ils pourraient être en faute. Incidemment, le mien ne fonctionne pas non plus! : -/ – Gav

Répondre

13

J'ai rencontré ce même problème avec TextMate et RVM. Ce que vous devez faire:

  1. Créer un script wrapper pour le gemset que vous souhaitez utiliser, en utilisant cette commande RVM:

    rvm wrapper [email protected] textmate 
    

    Cela va ajouter un nouvel alias à votre RVM install appelé textmate_ruby. Comme vous pouvez probablement le dire, on suppose que vous utilisez Ruby Enterprise (ree) et un gemset appelé rails3, mais n'importe quelle chaîne RVM fonctionnera ici.

  2. Ouvrez la fenêtre de préférences de TextMate, allez dans Advanced> Shell Variables. Vous devez créer (ou mettre à jour) la variable shell TM_RUBY à ce qui suit:

    /path/to/your/.rvm/bin/textmate_ruby 
    

    Si votre RVM est installé dans votre répertoire utilisateur (comme le mien), ce sera:

    /Users/[YOUR USER NAME HERE]/.rvm/bin/textmate_ruby 
    
  3. (Facultatif) Vous pouvez également avoir besoin de la variable de shell RUBYOPT pour demander à Ruby de charger des rubygems. Cela peut être nécessaire pour faire fonctionner certains bundles (comme RSpec). Réglez simplement la valeur sur rubygems.

Cela devrait être tout ce dont vous avez besoin.

+0

Cela a fonctionné pour moi - merci! – Thilo

0

Cela pourrait se produire de vous utilisez RVM (gestionnaire de version ruby) et textmate ne sait pas à ce sujet.

Est-ce que rake test travail à partir de la ligne de commande?

+0

rake test fonctionne à partir de la ligne de commande et j'utilise RVM. – Schneems

1

Pour obtenir TextMate d'utiliser le même interprète RVM Ruby comme la ligne de commande, je l'ai fait ce qui suit:

  • Sur la ligne de commande, tapé which ruby - pour moi, ce fut /Users/mgp/.rvm/gems/ruby-1.9.2-p180/bin/ruby
  • Dans les préférences TextMate , j'ai ajouté /Users/mgp/.rvm/gems/ruby-1.9.2-p180/bin à l'avant de ma variable shell PATH.
  • Dans les préférences TextMate, j'ai ajouté une nouvelle variable shell GEM_PATH avec la valeur /Users/mgp/.rvm/gems/ruby-1.9.2-p180:/Users/mgp/.rvm/gems/[email protected]
3

Je l'ai trouvé était plus simple d'utiliser l'approche rvm-auto-ruby.

Localisez le rvm-auto-ruby binaire en utilisant which:

$ which rvm-auto-ruby 

Le résultat est le chemin vers le binaire auto-chargement:

/Users/yourusername/.rvm/bin/rvm-auto-ruby 

Ajouter ce chemin à TextMate sous: Préférences -> Avancé - > Shell Variables

Fonctionne comme un alias qui pointe vers votre ver actif sion de Ruby.

Screenshot: http://cl.ly/23Yl

Ces instructions sont disponibles sur le site Web de RVM: https://rvm.io/integration/textmate/

+0

Utilisez-vous Rails 4.2 et Ruby 2.2? Est-ce que ça marche? Je ne peux pas le faire fonctionner, quand j'exécute un paquet textmate, et charge boot.rb: crash lors de l'exécution 'require 'bundler/setup'' –

Questions connexes