首先,你需要一个方法truncate
一个字符串,类似于:
def truncate(string, max)
string.length > max ? "#{string[0...max]}..." : string
end
或者通过扩展String
:(不过,不建议更改核心类)
class String
def truncate(max)
length > max ? "#{self[0...max]}..." : self
end
end
现在你可以打电话truncate
打印字符串时:
puts "short string".truncate
#=> short string
puts "a very, very, very, very long string".truncate
#=> a very, very, very, ...
或者你可以定义你自己的puts
:
def puts(string)
super(string.truncate(20))
end
puts "short string"
#=> short string
puts "a very, very, very, very long string"
#=> a very, very, very, ...
注意Kernel#puts http://www.ruby-doc.org/core-2.0.0/Kernel.html#method-i-puts接受可变数量的参数,您可能想要更改您的puts
相应的方法。