Sha256: 589101efa27ea13d2dd3e9e799282b9a86079f7d966fbce8db478d2950b93378
Contents?: true
Size: 1.16 KB
Versions: 4
Compression:
Stored size: 1.16 KB
Contents
# frozen_string_literal: true module I18n::Tasks::IgnoreKeys # whether to ignore the key # will also apply global ignore rules # @param [:missing, :unused, :eq_base] ignore_type def ignore_key?(key, ignore_type, locale = nil) key =~ ignore_pattern(ignore_type, locale) end # @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) def ignore_pattern(type, locale = nil) @ignore_patterns ||= HashWithIndifferentAccess.new @ignore_patterns[type] ||= {} @ignore_patterns[type][locale] ||= begin global, type_ignore = ignore_config.presence || [], 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 end
Version data entries
4 entries across 4 versions & 1 rubygems