10
votes

Comment démarrer IRB Console d'une tâche Rake?

J'essaie d'écrire une tâche de râteau qui mettra en place un environnement reflétant mon projet.

10:28:01:irb_test >> rake foo --trace
(in /Users/mwlang/projects/personal/rake/irb_test)
** Invoke foo (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute foo
rake aborted!
No such file or directory - foo
/opt/local/lib/ruby/1.8/irb/input-method.rb:68:in `initialize'
/opt/local/lib/ruby/1.8/irb/input-method.rb:68:in `open'
/opt/local/lib/ruby/1.8/irb/input-method.rb:68:in `initialize'
/opt/local/lib/ruby/1.8/irb/context.rb:80:in `new'
/opt/local/lib/ruby/1.8/irb/context.rb:80:in `initialize'
/opt/local/lib/ruby/1.8/irb.rb:92:in `new'
/opt/local/lib/ruby/1.8/irb.rb:92:in `initialize'
/opt/local/lib/ruby/1.8/irb.rb:57:in `new'
/opt/local/lib/ruby/1.8/irb.rb:57:in `start'
/Users/mwlang/projects/personal/rake/irb_test/Rakefile:9


0 commentaires

5 Réponses :


0
votes

Apparemment, il doit y avoir un problème avec la manière dont vous avez défini votre tâche. Ce qui se passe si vous changez xxx

à xxx


1 commentaires

La même chose arrive si j'ai [: environnement], juste: environnement, ou rien du tout. Si je modifie le nom de la tâche en "barre", IRB FUSSES sur "bar" ne se trouve pas, de sorte que c'est en quelque sorte en train de prendre le nom de la tâche et d'essayer de trouver un fichier ou un dossier.



1
votes

J'ai eu un problème similaire lors de la gestion de ma tâche comme ça. Réglage de la tâche par défaut a résolu le problème, mais cela n'a pas aidé avec le bogue. Ici: qu'est-ce que j'ai fait xxx


0 commentaires

30
votes

Irb.Start envisage de regarder Argv, qui contient le (s) nom de tâche (s) de la ligne de commande Rake. Essayez d'éliminer d'abord ARGV.

require 'irb'
ARGV.clear
IRB.start


3 commentaires

C'était bien le problème! Merci de répondre


Merci aussi! @Michaellang Vous devriez déjà accepter cette réponse.


Il y a un moyen plus simple de le faire dans Ruby 2.4.0; voir ma réponse.



1
votes

Le contenu du fichier Rake est ci-dessous et il s'appelle RakeFile.
Exécutez-le à partir du terminal avec le test Rake: Console

require 'rubygems'
require 'rake'

namespace :test do
desc "Test Task"

 desc "Load stuff in IRB."
 task :console do

   exec "irb -r rubygems -r sanitize" #require multiple gems by typing -r gemname

 end

 end


0 commentaires

2
votes

AS de Ruby 2.4.0, vous pouvez le faire:

require 'irb'
binding.irb


1 commentaires

bon à savoir! Je devrais probablement noter la question initiale et la réponse acceptée des résousts pour Ruby 1.8.