WHAT_HAS_CHANGED.txt

Path: WHAT_HAS_CHANGED.txt  (CVS)
Last Update: Sun Feb 08 00:27:06 +0100 2009

Изменения по отношению к RuTils 0.2.x

Никаких оверрайдов

К сожалению, переделать все существующие во Вселенной библиотеки невозможно. Мы предоставляем унаследованные классы которые реализуют нужную нам функциональность с минимальной хирургией чужих модулей. Например, если раньше вы делали так:

  RuTils.overrides = true
  BlueCloth.new(text_to_markdown_and_gilensize).to_html

то теперь нужно делать так

  RuTils::Gilenson::BlueClothExtra.new(text_to_markdown_and_gilensize).to_html

Почему удален BiDi-транслит?

В отличие от DHH авторы RuTils придерживаются стратегии синтактической серной кислоты вместо синтактического уксуса. Основная область применения bidi-транслитераций - генерация "как-бы" более удобочитаемых URL. К сожалению, у нее есть ряд свойств которые делают ее бессмысленной (кроме как в качестве упражнения по строковым итераторам Ruby). Приводим список аргументов почему вам не нужны автоматические транслитерированные URL:

  • Они будут работать только для набора символов "ASCII + русский". Любая попытка засунуть в ваш URL слово stød закончится печально.
  • Они будут работать только для русского языка, кириллиц много. Транслитерация по определению языкозависима.
  • Вашим пользователям придется непрерывно угадывать, пишется буква "я". "Ja"? "Ya"? "J"? Если вы хоть раз наблюдали иностранца, пытающегося выговорить "ОВИРскую" транслитерацию вашей фамилии из загранпаспорта, вы знаете о чем мы говорим.
  • Приличные браузеры не кодируют русский текст в адресной строке если Ваш вебсервер его принял. Если браузер неприличный то он позволяет этот текст ввести. Если браузер совсем неприличный, то средство ввода у него - стилус размером с зубочистку, а пользуются им в трамвае. Вводить ваш транслит в таких условиях все равно никто не будет, успокойтесь.

Приводить список аргументов "почему такой транслит вам нужен" мы не будем дабы никого не травмировать.

Если вам таки страшно неймется реализовать транслит в URL, рекомендуем следующий подход:

  • Для адресуемого обьекта сохраняется поле +slug+
  • При сохранении в это поле автоматически пишется "дирифицированное" название, но пользователь может его вручную отредактировать
  • Дальнейшая адресация производится без "транслитерации обратно", по полю slug напрямую

Дополнительно рекомендуется запретить загрузку файлов с русскими именами (с помощью Javascript и свойства value элемента input).

Рубинов много

Это актуально только для тех кто собирается слать патчи. RuTils тестирован и работает под двумя версиями MRI и под JRuby. Это автоматически означает что патчи должны тестироваться во всех этих средах.

[Validate]