我正在尝试制作命令行应用。 puts
行使代码看起来很乱。例如,我有help
命令,其中包含多个puts
def help()
puts "Welcome to my app"
puts "..."
puts "..."
puts "..."
puts "..."
end
如果我将puts
合并为一个,则输出将包含尾随空格
def help()
puts "Welcome to my app
...
..."
end
# The output in the console will be like:
# Welcome to my app
# ...
# ...
将消息与代码分开的最佳方法是什么?我只能考虑使用变量来存储消息,但我相信有一种更好,更整洁的方式,如降价或使用txt。
答案 0 :(得分:2)
对于您的要求,我认为您正在寻找STDLIB中的OptParser库。
它允许您构建命令行选项,以便为用户执行使用和命令行报告等操作。
但是,您可以使用help
方法执行此操作:
def help
<<-EOS.lines.each {|line| line.strip!}
Welcome to my app
...
...
EOS
end
puts help
puts "Thank you for using my app!"
这将显示如下。
Welcome to my app
...
...
Thank you for using my app!
更新:我将EOF分隔符更改为EOS for End of String。
答案 1 :(得分:2)
def help
puts \
"Welcome to my app"\
"..."\
"..."\
"..."\
"..."\
"..."
end
答案 2 :(得分:1)
在您的具体示例中,您可以在帮助功能
中进行操作puts "Welcome to my app", "...\n"*3
如果你有很多这样的静态消息,你可以尝试在开头的某个地方使用哈希
messages = {"welcome" => "Welcome to my app\n" + "...\n"*3,
"thanks" => "Thank you for the action"}
然后你可以访问它们
puts messages["welcome"]