class I18nChecker::Unused::Result

Detection result of unused translated text

@attr_reader [Array<I18nChecker::Unused::Text>] unused_texts @attr_reader [Hash<String, Array<I18nChecker::Unused::File>>] locale_files

Attributes

locale_files[R]
unused_texts[R]

Public Class Methods

new(unused_texts = []) click to toggle source

@param unused_texts [Array<I18nChecker::Unused::Text>]

# File lib/i18n_checker/unused/result.rb, line 13
def initialize(unused_texts = [])
  @unused_texts = unused_texts
  @locale_files = unused_texts.group_by(&:file_name)
end

Public Instance Methods

apply(target_locale_files) click to toggle source

Apply the detected unused translated text to the current translation file. Unused text has been deleted from the translation file.

@param target_locale_files [Array<I18nChecker::Locale::File>] @return [Array<I18nChecker::Locale::File>]

# File lib/i18n_checker/unused/result.rb, line 30
def apply(target_locale_files)
  locale_files = target_locale_files.
                   group_by(&:file_name).
                   map { |k, v| [k, v.first] }

  cleanup_locale_files = locale_files.map do |file_name, locale_file|
    return locale_file unless @locale_files.key?(file_name)
    unused_texts = @locale_files[file_name]
    locale_file.remove_texts(unused_texts.map(&:text))
  end
  cleanup_locale_files.each(&:save)
end
empty?() click to toggle source

@return [Boolean]

# File lib/i18n_checker/unused/result.rb, line 21
def empty?
  unused_texts.empty?
end