उपयोगकर्ता इनपुट के लिए एक सरल विशेषता, एक do..while
पाश में यह डाल करने के लिए केवल करने के लिए जब कोई उपयोगकर्ता वैध की आपूर्ति की है जारी रखने के लिए है लागू हो सकता है इनपुट। रुबी में स्पष्ट रूप से यह निर्माण नहीं है, लेकिन आप begin
और until
के साथ एक ही चीज़ प्राप्त कर सकते हैं। इससे स्वीकृत उत्तर में निम्नानुसार जोड़ा जाएगा:
task :action do
STDOUT.puts "I'm acting!"
end
task :check do
# Loop until the user supplies a valid option
begin
STDOUT.puts "Are you sure? (y/n)"
input = STDIN.gets.strip.downcase
end until %w(y n).include?(input)
if input == 'y'
Rake::Task["action"].reenable
Rake::Task["action"].invoke
else
# We know at this point that they've explicitly said no,
# rather than fumble the keyboard
STDOUT.puts "So sorry for the confusion"
end
end
स्रोत
2014-12-05 14:24:00
इंटरैक्टिव कार्यों के लिए [थोर] (https://github.com/wycats/thor) में देखें। यह रेक के लिए काफी बेहतर है, और यह रेल के साथ आता है, इसलिए आपके पास पहले से ही कुछ भी इंस्टॉल किए बिना है। – meagar
@ मीगर बस आज इस में भाग गया और अटक गया, क्या आपने कभी इसे समझ लिया? मैं zsh के साथ एक मैक पर हूँ। । । –
बस इसे समझ लिया - यह स्पष्ट रूप से रेल zsh प्लगइन से संबंधित था। जब मैंने उस प्लगइन को हटा दिया, तो zsh को पुनरारंभ किया, फिर इसे फिर से जोड़ा गया समस्या गायब हो गई। । । –