Search code examples
rubycapitalize

Apply .capitalize on an Cyrillic array in ruby


I want to capitalise the string elements in the array with ruby

This is my code:

headermonths = ["января","февраля","марта","апреля","мая","июня","июля","августа","октября","ноября","декабря"]

headermonths.each {|month| month.capitalize!}
puts headermonths

I get the following output:

января
февраля
марта
апреля
мая
июня
июля
августа
октября
ноября
декабря

if print the array with:

 print headermonths    

I get the following

["\u044F\u043D\u0432\u0430\u0440\u044F", "\u0444\u0435\u0432\u0440\u0430\u043B\u044F", "\u043C\u0430\u0440\u0442\u0430", "\u0430\u043F\u0440\u0435\u043B\u044F", "\u043C\u0430\u044F", "\u0438\u044E\u043D\u044F", "\u0438\u044E\u043B\u044F", "\u0430\u0432\u0433\u0443\u0441\u0442\u0430", "\u043E\u043A\u0442\u044F\u0431\u0440\u044F", "\u043D\u043E\u044F\u0431\u0440\u044F", "\u0434\u0435\u043A\u0430\u0431\u0440\u044F"]

But I would like to have an output like:

Января Февраля Марта Апреля Мая Июня Июля Августа Октября Ноября Декабря

How does I achieve this with a ruby method?


Solution

  • You can use the unicode gem

    require 'unicode'
    
    headermonths = ["января","февраля","марта","апреля","мая","июня","июля","августа","октября","ноября","декабря"]
    
    headermonths.map! {|month| Unicode::capitalize month }
    puts headermonths
    # >> ["Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Октября", "Ноября", "Декабря"]