class I18n::Hygiene::KeyUsageChecker
Checks
the usage of i18n keys in the codebase.
Public Class Methods
new(directories:, exclude_files: [], file_extensions: [])
click to toggle source
# File lib/i18n/hygiene/key_usage_checker.rb, line 6 def initialize(directories:, exclude_files: [], file_extensions: []) @directories = directories @exclude_files = exclude_files @file_extensions = file_extensions raise "Must have grep installed!" unless system("which grep > /dev/null") end
Public Instance Methods
used?(key)
click to toggle source
# File lib/i18n/hygiene/key_usage_checker.rb, line 14 def used?(key) fully_qualified_key_used?(key) end
Private Instance Methods
fully_qualified_key_used?(key)
click to toggle source
# File lib/i18n/hygiene/key_usage_checker.rb, line 20 def fully_qualified_key_used?(key) if pluralized_key_used?(key) fully_qualified_key_used?(without_last_part(key)) else directories = @directories.join(" ") include_argument = @file_extensions.map { |extension| "--include=\"*.#{extension}\"" }.join(" ") exclude_argument = @exclude_files.map { |file| "--exclude=\"#{file}\"" }.join(" ") grep_command = [ "grep --recursive", key, include_argument, exclude_argument, directories ].reject(&:empty?).join(" ") %x<#{grep_command} | wc -l>.strip.to_i > 0 end end
pluralized_key_used?(key)
click to toggle source
# File lib/i18n/hygiene/key_usage_checker.rb, line 40 def pluralized_key_used?(key) [ "zero", "one", "other" ].include?(key.split(".").last) end
without_last_part(key)
click to toggle source
# File lib/i18n/hygiene/key_usage_checker.rb, line 44 def without_last_part(key) key.split(".")[0..-2].join(".") end