module I18n::Processes::IgnoreKeys

Public Instance Methods

ignore_key?(key, ignore_type, locale = nil) click to toggle source

whether to ignore the key will also apply global ignore rules @param [:missing, :unused, :eq_base] ignore_type

# File lib/i18n/processes/ignore_keys.rb, line 7
def ignore_key?(key, ignore_type, locale = nil)
  key =~ ignore_pattern(ignore_type, locale)
end
ignore_pattern(type, locale = nil) click to toggle source

@param type [nil, :missing, :unused, :eq_base] type @param locale [String] only when type is :eq_base @return [Regexp] a regexp that matches all the keys ignored for the type (and locale)

# File lib/i18n/processes/ignore_keys.rb, line 14
def ignore_pattern(type, locale = nil)
  @ignore_patterns              ||= HashWithIndifferentAccess.new
  @ignore_patterns[type]        ||= {}
  @ignore_patterns[type][locale] ||= begin
    global = ignore_config.presence || []
    type_ignore = ignore_config(type).presence || []
    patterns = if type_ignore.is_a?(Array)
                 global + type_ignore
               elsif type_ignore.is_a?(Hash)
                 # ignore per locale
                 global + (type_ignore['all'] || []) +
                   type_ignore.select { |k, _v| k.to_s =~ /\b#{locale}\b/ }.values.flatten(1).compact
               end
    compile_patterns_re patterns
  end
end