Транслитерация с помощью Ruby Gem 'Babosa'

Можно заметить, что в большинстве Ruby on Rails проектов gem 'babosa' используется в связке с библиотекой 'friendly_id', которая предназначена для создания slug (человекопонятный URL страницы). При генерации ссылок в большинстве случаев используются заголовки страниц (название статьи, товара и т.д.).

Ruby Gem 'babosa' используется в случаях, когда конвертируемый текст отличается от английского и необходима транслитерация. В данный момент библиотекой поддерживается 12 языков: Bulgarian, Danish, German, Greek, Macedonian, Norwegian, Romanian, Russian, Serbian, Spanish, Swedish, Ukrainian.

Установим библиотеку:

gem install babosa

Заходим в Interactive Ruby Shell:

irb

Подключим 'babosa':

require 'babosa'

Создадим переменную с необходимым текстом:

cyr_string = "Транслитерация с помощью Ruby Gem 'Babosa'"

Используем предоставляемые библиотекой методы для транслитерации смешанного текста (русского и английского):

cyr_string.to_slug.transliterate(:russian).to_s

В результате мы получим:

=> "Transliteratsiya s pomoschu Ruby Gem 'Babosa'"

Библиотека выполнила транслитерацию, но для получения полноценного URL (без спецсимволов и с дефисами вместо пробелов) нужно выполнить несколько преобразований. В случае с библиотекой 'translit', мы использовали методы языка Ruby.

Данная же библиотека предназначена для генерации ссылок и имеет специальный метод, который делает за нас всю рутину:

cyr_string.to_slug.transliterate(:russian).normalize.to_s

Результат:

=> "transliteratsiya-s-pomoschu-ruby-gem-babosa"

Как можно заметить, 'babosa' предоставляет удобный функционал для транслитерации текста и конвертации в человекопонятный вид (чаще всего для использования в качестве ссылки).

Ссылки:
RubyGems, GitHub