我正在使用Rails的Fetcher插件检索电子邮件。它做得很好。但是我试图在新行上分割电子邮件的正文,但看起来它只是一个非常长的行。
将电子邮件分成多行的最佳方式(在Ruby中)是什么?
答案 0 :(得分:2)
听起来你需要一个自动换行算法。这是我在ruby-talk mailing list上找到的一种简短而巧妙的Ruby自动换行方式(链接是Google的缓存,因为该网站似乎已关闭):
puts $<.read.gsub(/\t/," ").gsub(/.{1,50}(?:\s|\Z)/){($& +
5.chr).gsub(/\n\005/,"\n").gsub(/\005/,"\n")}
这是一个包含在方法中的稍微漂亮的版本:
def wordwrap(str, columns=80)
str.gsub(/\t/, " ").gsub(/.{1,#{ columns }}(?:\s|\Z)/) do
($& + 5.chr).gsub(/\n\005/, "\n").gsub(/\005/, "\n")
end
end