文字数で文字の切り捨て

文字の切り捨てする時にRailsだとtruncateというヘルパーがあるのでそれでできるけどパターンによってはすごくいまいち。

helper.truncate("123456789", :length => 8) # => "12345..."
helper.truncate("12345678", :length => 8) # => "12345678"

truncateヘルパーは、省略文字含めて8文字としてしまう。

要件が8文字以上の時は『...』で表示してください、という時だとまるで使えない。

どうしようかなーと思ってこれでなんとかしてみた。

text = "123456789"
text.size > 8 ? "#{text[0..7]}..." : "text" # =>  "12345678..."