2005/03/17の日記で書いた文字列の省略 で書いた「長〜〜〜い文字列」を「長〜〜〜い...」に短縮するのを、 ruby でやりたくなった。
標準で用意されてそうな機能だけど見当たらなかったので 自作。
rails で使うために相変わらずどこに書いていいのか よくわからなかったので、とりあえず controllers/application.rb 辺りに。
class String
def truncate(n)
slice(/^.{0,#{n}}/m) + (nchar > n ? "..." : "")
end
def nchar
split(//).size
end
end
んで、rhtml の中で
<%=h @article.body.truncate(5) %>
ってな感じで使えば文字列を切り詰めることができる。
Rubyレシピブックを参考にさせて頂いた。
あ、$KCODE の指定を正しくしてないと日本語に対しては 正しく動きませんので御注意を。まぁ、rails 使ってたら 普通は設定してあると思いますけど。