class I18nCountryTranslations::LocaleFilesPatternGenerator

Generates patterns for locale files, bases on a list of supported locales

Attributes

base_pattern[R]
extension[R]

Public Class Methods

new(base_pattern, extension = '.yml') click to toggle source
# File lib/i18n_country_translations/locale_files_pattern_generator.rb, line 8
def initialize(base_pattern, extension = '.yml')
  @base_pattern = base_pattern
  @extension = extension
end

Public Instance Methods

pattern_from(locales) click to toggle source

Generates a glob file pattern for the specified list of locales (i.e. IETF language tags)

# File lib/i18n_country_translations/locale_files_pattern_generator.rb, line 14
def pattern_from(locales)
  locales = Array(locales || [])
  locales = locales.map { |locale| subpatterns_from locale }.flatten
  pattern = locales.blank? ? '*' : "{#{locales.join ','}}"
  "#{base_pattern}#{pattern}#{extension}"
end

Protected Instance Methods

subpatterns_from(locale) click to toggle source

Generates subpatterns for the specified locale (i.e. IETF language tag). Subpatterns are all more generic variations of a locale. E.g. subpatterns for en-US are en-US and en. Subpatterns for az-Latn-IR are az-Latn-IR, az-Latn and az

# File lib/i18n_country_translations/locale_files_pattern_generator.rb, line 26
def subpatterns_from(locale)
  parts = locale.to_s.split('-')
  parts.map.with_index { |part,index| parts[0..index].join('-') }
end