К сожалению, переделать все существующие во Вселенной библиотеки невозможно. Мы предоставляем унаследованные классы которые реализуют нужную нам функциональность с минимальной хирургией чужих модулей. Например, если раньше вы делали так:
RuTils.overrides = true BlueCloth.new(text_to_markdown_and_gilensize).to_html
то теперь нужно делать так
RuTils::Gilenson::BlueClothExtra.new(text_to_markdown_and_gilensize).to_html
В отличие от DHH авторы RuTils придерживаются стратегии синтактической серной кислоты вместо синтактического уксуса. Основная область применения bidi-транслитераций - генерация “как-бы” более удобочитаемых URL. К сожалению, у нее есть ряд свойств которые делают ее бессмысленной (кроме как в качестве упражнения по строковым итераторам Ruby). Приводим список аргументов почему вам не нужны автоматические транслитерированные URL:
Они будут работать только для набора символов “ASCII + русский”. Любая попытка засунуть в ваш URL слово stød закончится печально.
Они будут работать только для русского языка, кириллиц много. Транслитерация по определению языкозависима.
Вашим пользователям придется непрерывно угадывать, пишется буква “я”. “Ja”? “Ya”? “J”? Если вы хоть раз наблюдали иностранца, пытающегося выговорить “ОВИРскую” транслитерацию вашей фамилии из загранпаспорта, вы знаете о чем мы говорим.
Приличные браузеры не кодируют русский текст в адресной строке если Ваш вебсервер его принял. Если браузер неприличный то он позволяет этот текст ввести. Если браузер совсем неприличный, то средство ввода у него - стилус размером с зубочистку, а пользуются им в трамвае. Вводить ваш транслит в таких условиях все равно никто не будет, успокойтесь.
Приводить список аргументов “почему такой транслит вам нужен” мы не будем дабы никого не травмировать.
Если вам таки страшно неймется реализовать транслит в URL, рекомендуем следующий подход:
Для адресуемого обьекта сохраняется поле +slug+
При сохранении в это поле автоматически пишется “дирифицированное” название, но пользователь может его вручную отредактировать
Дальнейшая адресация производится без “транслитерации обратно”, по полю slug напрямую
Дополнительно рекомендуется запретить загрузку файлов с русскими именами (с помощью Javascript и свойства value элемента input).
Это актуально только для тех кто собирается слать патчи. RuTils тестирован и работает под двумя версиями MRI и под JRuby. Это автоматически означает что патчи должны тестироваться во всех этих средах.
Generated with the Darkfish Rdoc Generator 2.