Как я запускаю консоль IRB с задачи граблей?

Я пытаюсь записать задачу граблей, которая настроит среду, зеркально отражающую мой проект.

task :environment do 
  require 'rubygems'
  require 'sequel'
  # require 'my_projects_special_files'
end

task :foo => [:environment] do
  require 'irb'
  IRB.start
end

Приводит к irb, жалующемуся, что "нечто" не существует (название задачи)

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
9
задан Michael Lang 21 April 2010 в 14:33
поделиться

3 ответа

IRB.start смотрит на ARGV, который содержит имя (имена) задачи из командной строки rake. Попробуйте сначала очистить ARGV.

require 'irb'
ARGV.clear
IRB.start
30
ответ дан 4 December 2019 в 06:55
поделиться

Очевидно, проблема в том, как вы определили свою задачу. Что произойдет, если вы измените

task :foo => [:environment] do

на

task :foo => :environment do
0
ответ дан 4 December 2019 в 06:55
поделиться

У меня была похожая проблема, когда я запускал свою задачу подобным образом. Установка задачи по умолчанию решила проблему, но не помогла справиться с ошибкой. Вот: что я сделал

task :console do
  exec 'irb -I lib -r startingscript.rb'
end
0
ответ дан 4 December 2019 в 06:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: