module I18n::Tasks::Command::Commands::Usages
Public Instance Methods
find(opt = {})
click to toggle source
# File lib/i18n/tasks/command/commands/usages.rb, line 23 def find(opt = {}) opt[:filter] ||= opt.delete(:pattern) || opt[:arguments].try(:first) result = i18n.used_tree(strict: opt[:strict], key_filter: opt[:filter].presence, include_raw_references: true) print_forest result, opt, :used_keys end
remove_unused(opt = {})
click to toggle source
# File lib/i18n/tasks/command/commands/usages.rb, line 45 def remove_unused(opt = {}) # rubocop:disable Metrics/AbcSize unused_keys = i18n.unused_keys(**opt.slice(:locales, :strict)) if opt[:pattern] pattern_re = i18n.compile_key_pattern(opt[:pattern]) unused_keys = unused_keys.select_keys { |full_key, _node| full_key =~ pattern_re } end if unused_keys.present? terminal_report.unused_keys(unused_keys) confirm_remove_unused!(unused_keys, opt) i18n.data.config = i18n.data.config.merge(sort: false) if opt[:'keep-order'] removed = i18n.data.remove_by_key!(unused_keys) log_stderr t('i18n_tasks.remove_unused.removed', count: unused_keys.leaves.count) print_forest removed, opt else log_stderr Rainbow(t('i18n_tasks.remove_unused.noop')).green.bright end end
unused(opt = {})
click to toggle source
# File lib/i18n/tasks/command/commands/usages.rb, line 34 def unused(opt = {}) forest = i18n.unused_keys(**opt.slice(:locales, :strict)) print_forest forest, opt, :unused_keys :exit1 unless forest.empty? end
Private Instance Methods
confirm_remove_unused!(unused_keys, opt)
click to toggle source
# File lib/i18n/tasks/command/commands/usages.rb, line 67 def confirm_remove_unused!(unused_keys, opt) return if ENV['CONFIRM'] || opt[:confirm] locales = Rainbow(unused_keys.flat_map { |root| root.key.split('+') }.sort.uniq * ', ').bright msg = [ Rainbow(t('i18n_tasks.remove_unused.confirm', count: unused_keys.leaves.count, locales: locales)).red, Rainbow(t('i18n_tasks.common.continue_q')).yellow, Rainbow('(yes/no)').yellow ].join(' ') exit 1 unless agree msg end