Как печатать снеговика с помощью Ruby

Мне нужен заполнитель для единственной строки символов, которую я еще не реализовал. Как напечатать снеговика в Ruby 1.9?

В настоящее время я могу сделать

# coding: utf-8
puts "☃"

или

puts "\u2603"

но возможно ли использовать поле "Индексные записи" (упомянуто здесь) snowy weather или SNOWMAN или weather, snowy до получить символ для печати?

Я не использую Rails.

Ответ 1

Вы можете загрузить индекс имени из unicode.org и проанализировать имена символов в хеш (или лучше DB или аналогичные).

Затем вы можете получить его с обычными функциями доступа к данным.

Пример:

# coding: utf-8
index = {}
File.readlines('Index.txt').each{|line|
  line =~ /(.*)\t(.*)$/
  index[$1] = $2.to_i(16).chr("UTF-8")
}

snowman = index['SNOWMAN']
p snowman #hope it works. My shell does not show the snowman
p "\u2603" == snowman #true

Edit:

Есть драгоценный камень unicode_utils. С помощью этого драгоценного камня вы можете использовать:

require "unicode_utils/grep"
p UnicodeUtils.grep(/^snowman$/) #=> [#<U+2603 "\u2603" SNOWMAN utf8:e2,98,83>]