class I18n::Processes::Reports::Base
Attributes
task[R]
Public Class Methods
new(task = I18n::Processes::BaseProcess.new)
click to toggle source
# File lib/i18n/processes/reports/base.rb, line 7 def initialize(task = I18n::Processes::BaseProcess.new) @task = task end
Protected Instance Methods
collapse_missing_tree!(forest)
click to toggle source
# File lib/i18n/processes/reports/base.rb, line 64 def collapse_missing_tree!(forest) forest = task.collapse_plural_nodes!(forest) forest = task.collapse_same_key_in_locales!(forest) { |node| node.data[:type] == :missing_used } forest end
eq_base_title(key_values, locale = base_locale)
click to toggle source
# File lib/i18n/processes/reports/base.rb, line 28 def eq_base_title(key_values, locale = base_locale) "Same value as #{locale} (#{key_values.count || '∅'})" end
forest_to_attr(forest)
click to toggle source
# File lib/i18n/processes/reports/base.rb, line 49 def forest_to_attr(forest) forest.keys(root: false).map do |key, node| { key: key, value: node.value, type: node.data[:type], locale: node.root.key, data: node.data } end end
format_locale(locale)
click to toggle source
# File lib/i18n/processes/reports/base.rb, line 55 def format_locale(locale) return '' unless locale if locale.split('+') == task.locales.sort 'all' else locale.tr '+', ' ' end end
missing_title(forest)
click to toggle source
# File lib/i18n/processes/reports/base.rb, line 20 def missing_title(forest) "Missing translations (#{forest.leaves.count || '∅'})" end
missing_type_info(type)
click to toggle source
# File lib/i18n/processes/reports/base.rb, line 16 def missing_type_info(type) ::I18n::Processes::MissingKeys::MISSING_TYPES[type.to_s.sub(/\Amissing_/, '').to_sym] end
sort_by_attr!(objects, order = { locale: :asc, key: :asc })
click to toggle source
Sort keys by their attributes in order @param [Hash] order e.g. {locale: :asc, type: :desc, key: :asc}
# File lib/i18n/processes/reports/base.rb, line 40 def sort_by_attr!(objects, order = { locale: :asc, key: :asc }) order_keys = order.keys objects.sort! do |a, b| by = order_keys.detect { |k| a[k] != b[k] } order[by] == :desc ? b[by] <=> a[by] : a[by] <=> b[by] end objects end
unused_title(key_values)
click to toggle source
# File lib/i18n/processes/reports/base.rb, line 24 def unused_title(key_values) "All keys (#{key_values.count || '∅'})" end
used_title(keys_nodes, filter)
click to toggle source
# File lib/i18n/processes/reports/base.rb, line 32 def used_title(keys_nodes, filter) used_n = keys_nodes.map { |_k, node| node.data[:occurrences].size }.reduce(:+).to_i "#{keys_nodes.size} key#{'s' if keys_nodes.size != 1}#{" matching '#{filter}'" if filter}"\ "#{" (#{used_n} usage#{'s' if used_n != 1})" if used_n > 0}" end