class TidyI18n::MissingKeys

Attributes

locale_files[RW]
locale_to_validate[RW]

Public Class Methods

new(locale_to_validate, locale_files) click to toggle source
# File lib/tidy_i18n/missing_keys.rb, line 10
def initialize(locale_to_validate, locale_files)
  self.locale_to_validate = locale_to_validate
  self.locale_files = locale_files
end

Public Instance Methods

all() click to toggle source
# File lib/tidy_i18n/missing_keys.rb, line 19
def all
  default_locale_keys = translation_keys_for_locale(default_locale)
  locale_to_validate_keys = translation_keys_for_locale(locale_to_validate)
  default_locale_keys.each.with_object([]) do |key_in_default_locale, keys|
    if !locale_to_validate_key_names.include?(key_in_default_locale.name)
      keys << OpenStruct.new({
        :name => key_in_default_locale.name,
        :value_in_default_locale => key_in_default_locale.value
      })
    end
  end
end
default_locale() click to toggle source
# File lib/tidy_i18n/missing_keys.rb, line 15
def default_locale
  I18n.default_locale
end

Private Instance Methods

all_translation_keys() click to toggle source
# File lib/tidy_i18n/missing_keys.rb, line 42
def all_translation_keys
  locale_files.each.with_object({}) do |locale_file, locale_to_keys|
    keys = TidyI18n::TranslationKeys.parse(File.read(locale_file))
    if keys.any?
      current_locale = keys.first.name.split(".").first
      previous_keys = locale_to_keys.fetch(current_locale.to_s, [])
      locale_to_keys[current_locale.to_s] = previous_keys + keys.collect do |key|
        OpenStruct.new({
          :name => key.name.sub(/^#{current_locale}\./, ""),
          :value => key.value
        })
      end
    end
  end
end
locale_to_validate_key_names() click to toggle source
# File lib/tidy_i18n/missing_keys.rb, line 34
def locale_to_validate_key_names
  @locale_to_validate_key_names ||= translation_keys_for_locale(locale_to_validate).map(&:name)
end
translation_keys_for_locale(locale) click to toggle source
# File lib/tidy_i18n/missing_keys.rb, line 38
def translation_keys_for_locale(locale)
  all_translation_keys.fetch(locale.to_s, [])
end