module I18nChecker::Locale::Methods

Public Instance Methods

load_of(locale_files) click to toggle source

Read specified translation file

@return [I18nChecker::Locale::Files]

# File lib/i18n_checker/locale.rb, line 12
def load_of(locale_files)
  files = locale_files.delete_if { |resource| ::File.directory?(resource) }.to_a
  loaded_locale_files = files.map { |locale_file| I18nChecker::Locale::File.load_yaml_file(locale_file) }
  Files.new(loaded_locale_files)
end
text_collector_of(file_extname, caches:) click to toggle source
# File lib/i18n_checker/locale.rb, line 33
def text_collector_of(file_extname, caches:)
  case file_extname
  when '.haml'
    I18nChecker::Locale::Collector::Haml.new(caches)
  when '.rb'
    I18nChecker::Locale::Collector::Ruby.new(caches)
  else
    raise StandardError, "not support #{extname} file" # FIXME: throw custom error!!
  end
end
texts_of(resources) click to toggle source

Collect translation text from specified file list

@return [I18nChecker::Locale::Texts]

# File lib/i18n_checker/locale.rb, line 21
def texts_of(resources)
  caches = I18nChecker::Cache::Files.new

  files = resources.delete_if { |resource| ::File.directory?(resource) }.to_a
  grouped_files = files.group_by { |file| ::File.extname(file) }
  grouped_locale_texts = grouped_files.map do |k, v|
    text_collector_of(k, caches: caches).collect_all(v)
  end
  result = I18nChecker::Locale::Texts.new
  grouped_locale_texts.reduce(result) { |locale_texts, n| locale_texts.concat(n) }.uniq!
end