in lib/twitter_cldr/resources/cldr_locale.rb [18:48]
def ancestors
@ancestors ||= [].tap do |ancestry|
locale = from_fs(base_locale)
ancestry << locale
loop do
cur = from_fs(ancestry.last)
if parents = parent_locales[cur]
ancestry << to_fs(parents)
elsif I18n::Locale::Tag.tag(cur).self_and_parents.count > 1
ancestry << I18n::Locale::Tag.tag(cur).self_and_parents.last.to_sym
else
parents = TwitterCldr::Shared::Locale
.parse(cur)
.permutations
ancestry.concat(parents - [cur])
break
end
end
ancestry.select! do |locale|
File.exist?(File.join(cldr_requirement.common_path, 'main', "#{from_fs(locale)}.xml"))
end
ancestry << "root"
ancestry.freeze
end
end