module Cyrillizer::Converter

Public Instance Methods

to_cyr() click to toggle source
# File lib/cyrillizer/converter.rb, line 6
def to_cyr
  code(self.dup, inverted_alphabet)
end
to_cyr!() click to toggle source
# File lib/cyrillizer/converter.rb, line 10
def to_cyr!
  code(self, inverted_alphabet)
end
to_lat() click to toggle source
# File lib/cyrillizer/converter.rb, line 14
def to_lat
  code(self.dup, alphabet)
end
to_lat!() click to toggle source
# File lib/cyrillizer/converter.rb, line 18
def to_lat!
  code(self, alphabet)
end

Private Instance Methods

alphabet() click to toggle source
# File lib/cyrillizer/converter.rb, line 31
def alphabet
  @alphabet ||= sort(Cyrillizer.alphabet)
end
code(text, alphabet) click to toggle source
# File lib/cyrillizer/converter.rb, line 24
def code(text, alphabet)
  alphabet.each do |from, to|
    text.gsub!(from, to)
  end
  text
end
inverted_alphabet() click to toggle source
# File lib/cyrillizer/converter.rb, line 35
def inverted_alphabet
  @inverted_alphabet ||= sort(alphabet.invert)
end
sort(alphabet) click to toggle source
# File lib/cyrillizer/converter.rb, line 39
def sort(alphabet)
  alphabet.sort_by { |k, v| k.length }.reverse.to_h
end