2006-11-02 (Thu) [長年日記]

_ 文字列の省略 はてなブックマークに追加 del.icio.usに追加 MM/Memoに追加

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レシピブックを参考にさせて頂いた。

Rubyレシピブック 268の技 Rubyレシピブック 268の技

あ、$KCODE の指定を正しくしてないと日本語に対しては 正しく動きませんので御注意を。まぁ、rails 使ってたら 普通は設定してあると思いますけど。

関連:

  • (Java) commons-lang StringUtils.abbreviate()
  • (Carbon) TruncString
  • (Cocoa) NSLineBreakByTruncatingTail
  • (Win32) DT_END_ELLIPSIS
Permalink | このエントリを含むはてなブックマーク | このエントリをはてなブックマークに追加 | このエントリを含むMM/Memo | このエントリをMM/Memoに追加 | このエントリを含むdel.icio.us | このエントリをdel.icio.usに追加 | Tags: ruby rails
[]