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
5 Réponses :
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 à p>
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.
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
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
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.
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
AS de Ruby 2.4.0, vous pouvez le faire:
require 'irb' binding.irb
bon à savoir! Je devrais probablement noter la question initiale et la réponse acceptée des résousts pour Ruby 1.8.