discourse/app/serializers/watched_word_list_serializer.rb
Bianca Nenciu fd07c943ad
DEV: Refactor watched words (#24163)
- Ignore only invalid words, not all words if one of them is invalid

- The naming scheme for methods was inconsistent

- Optimize regular expressions
2023-11-01 16:41:10 +02:00

26 lines
609 B
Ruby

# frozen_string_literal: true
class WatchedWordListSerializer < ApplicationSerializer
attributes :actions, :words, :compiled_regular_expressions
def actions
if SiteSetting.tagging_enabled
WatchedWord.actions.keys
else
WatchedWord.actions.keys.filter { |k| k != :tag }
end
end
def words
object.map { |word| WatchedWordSerializer.new(word, root: false) }
end
def compiled_regular_expressions
expressions = {}
actions.each do |action|
expressions[action] = WordWatcher.serialized_regexps_for_action(action, engine: :js)
end
expressions
end
end