class Fias::Config
Attributes
aliases[R]
exceptions[R]
index[R]
longs[R]
proper_names[R]
replacements[R]
shorts[R]
synonyms[R]
synonyms_index[R]
Public Class Methods
new() { |self| ... }
click to toggle source
# File lib/fias/config.rb, line 3 def initialize @index = {} @longs = {} @shorts = {} @aliases = {} @exceptions = {} @proper_names = [] @replacements = {} @synonyms = [] @synonyms_index = {} yield(self) finalize_index end
Public Instance Methods
add_exception(long, short)
click to toggle source
# File lib/fias/config.rb, line 34 def add_exception(long, short) @exceptions[Unicode.downcase(short)] = [long, short] @exceptions[Unicode.downcase(long)] = [long, short] end
add_name(long, short, aliases = [])
click to toggle source
# File lib/fias/config.rb, line 22 def add_name(long, short, aliases = []) @longs[Unicode.downcase(short)] = long @shorts[Unicode.downcase(long)] = short @aliases[Unicode.downcase(long)] = aliases populate_index(long, short, aliases) end
add_proper_name(name)
click to toggle source
# File lib/fias/config.rb, line 39 def add_proper_name(name) @proper_names << name end
add_replacement(target, value)
click to toggle source
# File lib/fias/config.rb, line 30 def add_replacement(target, value) @replacements[Unicode.downcase(target)] = value end
add_synonym(*names)
click to toggle source
# File lib/fias/config.rb, line 43 def add_synonym(*names) @synonyms << names populate_synonyms_index(names) end
Private Instance Methods
finalize_index()
click to toggle source
# File lib/fias/config.rb, line 70 def finalize_index @index = @index.sort_by { |key, _| key.size }.reverse @index = Hash[*@index.flatten] end
populate_index(long, short, aliases)
click to toggle source
# File lib/fias/config.rb, line 50 def populate_index(long, short, aliases) long_downcase = Unicode.downcase(long) short_downcase = Unicode.downcase(short) populate_long_permutations(long) if long_downcase != short_downcase @index[short_downcase] = long @index[short_downcase[0..-2]] = long if short_downcase[-1] == '.' end aliases.each { |al| @index[Unicode.downcase(al)] = long } end
populate_long_permutations(long)
click to toggle source
# File lib/fias/config.rb, line 64 def populate_long_permutations(long) Unicode.downcase(long).split(' ').permutation.each do |variant| @index[variant.join(' ')] = long end end
populate_synonyms_index(names)
click to toggle source
# File lib/fias/config.rb, line 75 def populate_synonyms_index(names) names.each { |name| @synonyms_index[name] = names } end