# frozen_string_literal: true class ProblemCheck::WatchedWords < ProblemCheck self.priority = "low" def call return no_problem if invalid_regexp_actions.empty? problem end private def translation_key "dashboard.watched_word_regexp_error" end def translation_data { action: invalid_regexp_actions.map { |w| "'#{w}'" }.join(", ") } end def invalid_regexp_actions @invalid_regexp_actions ||= WatchedWord.actions.keys.filter_map do |action| WordWatcher.compiled_regexps_for_action(action, raise_errors: true) nil rescue RegexpError I18n.t("admin_js.admin.watched_words.actions.#{action}") end end end