ヽ(´・肉・`)ノログ

How do we fighting without fighting?

Rubyで全半角混在文字の文字幅を計算する方法

"あいう"  # => 6
"123"     # => 3
"あaい1:" # => 7

という感じで全角文字は2,半角文字は1で文字幅を計算したいことがあります.

Stringのメソッドにそのものズバリはなかったので

"あaい1:".each_char.reduce(0) { |total, char| char.ascii_only? ? total + 1 : total + 2 } # => 7

という方法で求めました.こういう用途に便利なメソッドやイディオム,ライブラリはありますかね?