2010-04-21 20 views
9

मैं एक रेक कार्य लिखने की कोशिश कर रहा हूं जो मेरे प्रोजेक्ट को मिररिंग करने वाला माहौल स्थापित करेगा।मैं रेक रेक से आईआरबी कंसोल कैसे शुरू करूं?

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

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

शिकायत की कि "foo" मौजूद नहीं है (काम के नाम पर)

 
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 

उत्तर

30

IRB.start ARGV जो रेक कमांड लाइन से काम नाम (रों) शामिल है में दिख रही है। पहले एआरजीवी साफ़ करने का प्रयास करें।

require 'irb' 
ARGV.clear 
IRB.start 
+0

वास्तव में यह समस्या थी! –

+0

उत्तर देने के लिए धन्यवाद भी धन्यवाद! @MichaelLang आपको पहले से ही यह जवाब स्वीकार करना चाहिए। –

+0

रूबी 2.4.0 में ऐसा करने का एक और सीधा तरीका है; मेरा जवाब देखें –

0

जाहिर है वहाँ कैसे आप अपने कार्य परिभाषित के साथ एक समस्या होना चाहिए आईआरबी के लिए जाता है। यदि आप के लिए

task :foo => :environment do 
+0

यही बात होता है कि क्या मैं ऐसा [: पर्यावरण], खास: पर्यावरण, या कुछ भी नहीं सब पर । यदि मैं कार्य का नाम "बार" में बदलता हूं तो आईआरबी "बार" नहीं पाया जा रहा है, इसलिए यह किसी भी तरह से कार्य नाम पर उठा रहा है और इसके लिए फ़ाइल या फ़ोल्डर ढूंढने का प्रयास कर रहा है। –

0

मैं एक ऐसी ही समस्या मिला है जब कि तरह मेरे कार्य चल रहा

task :foo => [:environment] do 

बदल क्या होता है। इसे डिफ़ॉल्ट कार्य सेट करने से समस्या हल हो गई लेकिन यह बग के साथ मदद नहीं की। यहाँ: मैं क्या किया

task :console do 
    exec 'irb -I lib -r startingscript.rb' 
end 
0

रेक फ़ाइल सामग्री नीचे दी गई है और इसे रेकैकाइल नाम दिया गया है। रेक परीक्षण के साथ टर्मिनल से
भागो यह: कंसोल

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 

एक बार आप रेक परीक्षण निष्पादित किया है: कंसोल, आईआरबी पॉप अप और आप देख सकते हैं कि यह स्वच्छ के स्वच्छ विधि का उपयोग कर काम करता है।
Sanitize.clean "कुछ पाठ"

2

रूबी 2.4.0 के रूप में, आप यह कर सकते हैं:

require 'irb' 
binding.irb 
+0

जानना अच्छा है! मुझे शायद मूल प्रश्न और रुबी 1.8 के लिए स्वीकृत उत्तर हल करना चाहिए। –

संबंधित मुद्दे