Генерация красивой ссылки при помощи Ruby gem 'translit'
Для быстрой транслитерации между кириллицей и латиницей не выходя из терминала - можно использовать gem 'translit'.
Процесс установки библиотеки стандартный:
gem install translit
Чтобы начать работу с библиотекой, необходимо открыть в терминале Interactive Ruby Shell (irb). Команда для запуска:
irb
Далее мы должны подключить библиотеку:
require 'translit'
Создадим переменную 'cyr_string':
cyr_string = "Генерация красивой ссылки при помощи Ruby gem 'translit'"
Начинаем конвертацию кириллической строки в латиницу при помощи методов из библиотеки 'translit':
result = Translit.convert(cyr_string, :english)
Полученный результат:
=> "Generaciq krasiwoj ssylki pri pomoschi Ruby gem 'translit'"
Конвертация кириллической строки в латинскую закончена. Далее приведем полученый результат к виду ссылки.
Сначала уберем спецсимволы и поменяем буквам верхний регистр на нижний:
result = result.downcase.gsub /\W+/, ' '
Полученный результат:
=> "generaciq krasiwoj ssylki pri pomoschi ruby gem translit "
Прежде чем заменить все пробелы на дефис, уберем ненужный пробел в конце нашей строки при помощи метода 'strip' (хотя зная, что у нас лишний пробел справа - можно использовать 'rstrip'):
result.strip!
И наконец, заменим все пробелы на символ дефиса:
result.tr(" ", "-")
Результат:
=> "generaciq-krasiwoj-ssylki-pri-pomoschi-ruby-gem-translit"
Прошу отметить, что библиотека 'translit' не обновлялась последние несколько лет и имеет довольно ограниченный функционал. Например, не хватает выбора стандарта транслитерации и поддержки других языков. Также транлитерация буквы 'я' в 'q' не сделает ссылки сайта более читабельными.
Учитывая эти факты - лучше отказаться от использования этой библиотеки в рабочем проекте и изучить форки на наличие обновлений функционала и багфиксов, либо использовать альтернативу.