Как рассчитать ширину строки в Ruby?

String.length скажу только, сколько символов в строке. (На самом деле, до Ruby 1.9 мне сообщается только сколько байтов, что еще менее полезно.)

Мне бы очень хотелось, чтобы узнать, сколько строк в формате EN. Например:

'foo'.width
# => 3

'moo'.width
# => 3.5          # m's, w's, etc. are wide

'foi'.width
# => 2.5          # i's, j's, etc. are narrow

'foo bar'.width
# => 6.25         # spaces are very narrow

Еще лучше было бы, если бы я мог получить первыйn en of String:

'foo'[0, 2.en]
# => "fo"

'filial'[0, 3.en]
# => "fili"

'foo bar baz'[0, 4.5en]
# => "foo b"

И лучше было бы, если бы я мог выработать стратегию всего этого. Некоторые люди думают, что пространство должно быть 0.25en, некоторые думают, что это должно быть 0.33, и т. Д.

Ответы на вопрос(5)

Ваш ответ на вопрос