2016-01-26 20 views
0

這是我ircd的配置文件生成當前的代碼, 我想能夠使用answer_or_default這一點,並找出使用HighLine::Question#gather海萊:使用收集和answer_or_default

這裏的answer_or_default

a = HighLine.new($stdin, $stderr) 
connect_pingfreq = a.ask("? ", Integer) do |q| 
    q.default = 240 
    q.in = 0..300 
    # q.answer_or_default 
    # gives 
    # /var/lib/gems/2.0.0/gems/highline 
    # -1.7.8/lib/highline/question.rb:217:in 
    # `answer_or_default': wrong number of arguments (0 for 1) (ArgumentError) 
end 
# I've used it here as 
# connect_pingfreq.answer_or_default 
# But then gives the error shown 
# ? 
# /home/ken/git/shell-scripts/inspigen/generator.rb:48:in `conf': 
# undefined method `answer_or_default' for 240:Fixnum (NoMethodError) 

當在裏面使用answer_or_default時,我不太確定如何給它的'answer_string'文檔說明它想要的。

然後240是給出的答案,但我不能完全做任何事情。

我也想學習使用HighLine::Question#gather使用這段代碼。考慮到我不是很瞭解的文檔,它

a = HighLine.new($stdin, $stderr) 
a.say "Your <admin> lines.." 
admin_name = a.ask "Admin Real Name? " 
admin_nick = a.ask "Admin Nick? " 
admin_email = a.ask("Admin Email? ") do |q| 
    q.validate = /\A([\w+\-].?)[email protected][a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/ 
end 

#gather應該問我要3行,姓名,暱稱和電子郵件

在哈希或數組

不是,但我相信一個哈希會更容易閱讀。

+0

默認「到目前爲止,我沒有成功」並不說明你的問題。請解釋你的代碼有什麼問題。實際與期望的行爲至少有關 –

+0

問題正文已修復 – IotaSpencer

回答

0

對於第一個問題,您可以從connect_pingfreq變量中獲得答案(或默認值)。無需撥打answer_or_default。就像這樣:

a = HighLine.new($stdin, $stderr) 
connect_pingfreq = a.ask("? ", Integer) do |q| 
    q.default = 240 
    q.in = 0..300 
end 

puts connect_pingfreq 

這將輸出無論是用戶輸入的答案或240