2

我正在尝试制作命令行应用程序。该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
#        ...
#        ...

将消息与代码分开的最佳方法是什么?我只能想到使用变量来存储消息,但我相信有更好、更整洁的方式,比如 markdown 或使用 txt。

4

3 回答 3

2
def help
    puts \
    "Welcome to my app"\
    "..."\
    "..."\
    "..."\
    "..."\
    "..."
end
于 2013-08-28T04:28:26.050 回答
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 以表示字符串结束。

于 2013-08-28T04:08:25.697 回答
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"]
于 2013-08-28T04:45:15.917 回答