我一直在沮丧地搜索几个小时,似乎无法找到如何更改ask函数的输入。
input = ask ("Input text: ")
如果有人可以帮助新手,这将是惊人的!
我还为以下宝石提供了一个脚本链接here:
答案 0 :(得分:1)
只需在downcase!
变量上拨打downcase
(或input
根据您的引用)。
像这样,
input = ask("Input text").downcase
或者,
input = ask("Input text")
input.downcase!
p "Downcased: #{input}"
为您提供的快速代码段
require 'highline'
cli = HighLine.new
input = cli.ask("Input text").downcase!
p "Downcased input: #{input}"
执行。
$ ruby app.rb
Input text
LoremIpsum DOlor SIt amet
"Downcased input: loremipsum dolor sit amet"
答案 1 :(得分:0)
如果您是Ruby的新手和/或通过源阅读以了解图书馆的运作方式,请不要担心,我已经去过那里(在商业大约10年之后仍然不时发生。)
根据您的目的,marmeladze
的第一个答案可能就是您正在寻找的内容。
我认为你可能正在寻找不同的东西(或者未来的某些人可能会从扩展的答案中受益),并希望改变Highline捕获的答案以进行验证。
Highline有一个#change_case方法可以改变答案的大小写,也可能是您正在寻找的方法。
input = ask("Do you like cupcakes?") {|q| q.case = :down}
并且结果与其他答案完全相同,但是以较不直接的方式完成(因为您在块中操纵答案)。
但是,如果您想要做一些更多参与的事情,并在案例中使用更改作为答案验证的一部分,那么将.downcase
添加到ask()
块的末尾并不是'要去削减它。
例如,我们假设您要提问并检查输入是y
还是n
。你可以这样做:
input = ask("Do you like cupcakes?") do |q|
q.case = :down
q.in = ["y","n"]
end
这样输入将包含y
或n
,并接受Y
,y
,N
或n
的输入。
您可以通过在块内对q
对象进行更多更改(例如,使用q.echo = false
关闭输入回声)来更进一步,并使用HighLine::Question class提供的其他功能。