Бывают и приятные открытия
$ ruby extconf.rb
creating Makefile
$ make
...bla...
$ sudo make install
...bla...
$ irb -rmbstring -Ku
irb(main):003:0> t = "Некий странный длинный такой текстЪ"
=> "Некий странный длинный такой текстЪ"
irb(main):007:0> t.methods.grep /mb/
=> ["mbchop!", "member?", "mbchop", "mblength", "mbsubstr", "mbsize", "mbreplace", "each_mbchar"]
irb(main):008:0> t.length
=> 66
irb(main):009:0> t.mblength
=> 35 # ура товарищи!
Неважно, что README на японском - там все понятно. Чего же я раньше не заметил... Попутно Николай Луговой продолжает работу над чудесным icu4r - и только Матц спит. Сколько же можно то...
UPD: Знающие товарищи ретранслируют что
...Ruby 1.9.1, which will be released at Christmas 2007, with the Ruby 1.9.0 branch being developed. He will keep on maintaining Ruby 1.8.x as well. If he has to apply security patches, the forth version number (1.9.1.1, 1.9.1.x …) would be possible. Ruby 1.9.1 will include local variables, M17N and YARV inclusion2...
То что нас интересует Матц кличет M17N. Дожить бы.
What others said
Макс Лапшин
Я так краем глаза на все это посмотрел и понял, почему ты отказался от непосредственного переписывания size и прочего.
Ощущение, что нормально юникод не реализовать, пока не придумать для себя какую-то жесткую, замкнутую, четкую, как математическая, модель юникода, что бы по ней уже реализовывать все эти навороты.
Julik
Я отказался потому что такие перегрузки портят некоторые ключевые компоненты, рельсов в том числе - я писал про это недавно в rails-core. Другое дело что с математической моделью надо использовать уже что-то вроде ICU4R, а он в сегодняшнем виде увы архитектурная астронавтика. В PHP такие перегрузки работали, потому что все низкоуровневое там происходит на сишном уровне и хаков этот уровень не видит - в руби так легко не отделаться.
Зверёк Харьковский
Матц не совсем спит :) Вы ruby-talk не читаете? Там как раз сейчас идет большая дискуссия на данную тему, в рамках которой мы уже убедили Матца в важности сделать это все побыстрее.
http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-talk/197416?196931-197466
(в этой дискуссии я - Victor Shepelev)
Зверёк Харьковский
Пардон, уже вижу Вас в листе :)