From 14e27a65aeb39a5295542923f087fb966f3f58b1 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Sun, 10 Jul 2022 02:57:56 +0200 Subject: [PATCH] Move ActsAsTaggableOn::Tag overrides to initializer This is to prepare for zeitwerk autoloader, and the old file couldn't be autoloaded anyway, so the easiest is to just move it out of the models folder. --- .../javascripts/app/helpers/text_formatter.js | 2 +- .../app/views/tag_following_list_view.js | 2 +- app/models/acts_as_taggable_on-tag.rb | 25 ------------------- config/initializers/acts_as_taggable_on.rb | 24 +++++++++++++++++- 4 files changed, 25 insertions(+), 28 deletions(-) delete mode 100644 app/models/acts_as_taggable_on-tag.rb diff --git a/app/assets/javascripts/app/helpers/text_formatter.js b/app/assets/javascripts/app/helpers/text_formatter.js index c9a302fe9..814665959 100644 --- a/app/assets/javascripts/app/helpers/text_formatter.js +++ b/app/assets/javascripts/app/helpers/text_formatter.js @@ -43,7 +43,7 @@ var hashtagPlugin = window.markdownitHashtag; md.use(hashtagPlugin, { - // compare tag_text_regexp in app/models/acts_as_taggable_on-tag.rb + // compare tag_text_regexp in config/initializers/acts_as_taggable_on.rb hashtagRegExp: "[" + PosixBracketExpressions.word + "\\u055b" + // Armenian emphasis mark "\\u055c" + // Armenian exclamation mark diff --git a/app/assets/javascripts/app/views/tag_following_list_view.js b/app/assets/javascripts/app/views/tag_following_list_view.js index d284f137c..41af8e7e5 100644 --- a/app/assets/javascripts/app/views/tag_following_list_view.js +++ b/app/assets/javascripts/app/views/tag_following_list_view.js @@ -48,7 +48,7 @@ app.views.TagFollowingList = app.views.Base.extend({ if(evt){ evt.preventDefault(); } var name = this.$(".tag_input").val(); - // compare tag_text_regexp in app/models/acts_as_taggable_on-tag.rb + // compare tag_text_regexp in config/initializers/acts_as_taggable_on.rb var normalizedName = (name === "<3" ? name : name.replace( new RegExp("[^" + PosixBracketExpressions.alnum + "_\\-]+", "gi"), "").toLowerCase()); diff --git a/app/models/acts_as_taggable_on-tag.rb b/app/models/acts_as_taggable_on-tag.rb deleted file mode 100644 index dc5ece4cc..000000000 --- a/app/models/acts_as_taggable_on-tag.rb +++ /dev/null @@ -1,25 +0,0 @@ -# frozen_string_literal: true - -module ActsAsTaggableOn - class Tag - - self.include_root_in_json = false - - def self.tag_text_regexp - @tag_text_regexp ||= "[[:word:]]\u055b\u055c\u055e\u058a_-" - end - - def self.autocomplete(name) - where("name LIKE ?", "#{name.downcase}%").order("name ASC") - end - - def self.normalize(name) - if name =~ /^#?<3/ - # Special case for love, because the world needs more love. - '<3' - elsif name - name.gsub(/[^#{self.tag_text_regexp}]/, '').downcase - end - end - end -end diff --git a/config/initializers/acts_as_taggable_on.rb b/config/initializers/acts_as_taggable_on.rb index de8bfc5aa..743fdfa63 100644 --- a/config/initializers/acts_as_taggable_on.rb +++ b/config/initializers/acts_as_taggable_on.rb @@ -1,4 +1,26 @@ # frozen_string_literal: true -require 'models/acts_as_taggable_on-tag' +module ActsAsTaggableOn + class Tag + self.include_root_in_json = false + + def self.tag_text_regexp + @tag_text_regexp ||= "[[:word:]]\u055b\u055c\u055e\u058a_-" + end + + def self.autocomplete(name) + where("name LIKE ?", "#{name.downcase}%").order("name ASC") + end + + def self.normalize(name) + if name =~ /^#?<3/ + # Special case for love, because the world needs more love. + "<3" + elsif name + name.gsub(/[^#{tag_text_regexp}]/, "").downcase + end + end + end +end + ActsAsTaggableOn.force_lowercase = true