diff --git a/Gemfile b/Gemfile index 65bfc6fc308e7e919bd8e88b639f883c4bb837ee..7b994f569dd4462310a6030f97af496951d4ecef 100644 --- a/Gemfile +++ b/Gemfile @@ -89,7 +89,7 @@ gem 'omniauth-wordpress','0.2.1' # Tags -gem 'acts-as-taggable-on', '2.4.1' +gem 'acts-as-taggable-on', '3.2.6' # URIs and HTTP diff --git a/Gemfile.lock b/Gemfile.lock index c88ddbab973d7c8ea22fbf1da64ccf84890be1ee..e5c0991a917c12356d3a3f9917a02baa428e2253 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -30,8 +30,8 @@ GEM activesupport (3.2.18) i18n (~> 0.6, >= 0.6.4) multi_json (~> 1.0) - acts-as-taggable-on (2.4.1) - rails (>= 3, < 5) + acts-as-taggable-on (3.2.6) + activerecord (>= 3, < 5) acts_as_api (0.4.2) activemodel (>= 3.0.0) activesupport (>= 3.0.0) @@ -470,7 +470,7 @@ PLATFORMS DEPENDENCIES activerecord-import (= 0.3.1) - acts-as-taggable-on (= 2.4.1) + acts-as-taggable-on (= 3.2.6) acts_as_api (= 0.4.2) addressable (= 2.3.6) asset_sync (= 1.0.0) diff --git a/app/models/acts_as_taggable_on-tag.rb b/app/models/acts_as_taggable_on-tag.rb new file mode 100644 index 0000000000000000000000000000000000000000..a19dc3636964f5f17471928e23037c8f0cb3bd52 --- /dev/null +++ b/app/models/acts_as_taggable_on-tag.rb @@ -0,0 +1,23 @@ +module ActsAsTaggableOn + class Tag + + self.include_root_in_json = false + + def self.tag_text_regexp + @@tag_text_regexp ||= "[[:alnum:]]_-" + end + + def self.autocomplete(name) + where("name LIKE ?", "#{name.downcase}%") + 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/app/models/acts_as_taggable_on/tag.rb b/app/models/acts_as_taggable_on/tag.rb deleted file mode 100644 index 052fca4b4e058b588e0e677a654f03bf6841a169..0000000000000000000000000000000000000000 --- a/app/models/acts_as_taggable_on/tag.rb +++ /dev/null @@ -1,21 +0,0 @@ -class ActsAsTaggableOn::Tag - - self.include_root_in_json = false - - def self.tag_text_regexp - @@tag_text_regexp ||= "[[:alnum:]]_-" - end - - def self.autocomplete(name) - where("name LIKE ?", "#{name.downcase}%") - 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 diff --git a/config/initializers/acts_as_taggable_on.rb b/config/initializers/acts_as_taggable_on.rb index bfc309bf2df5bccae68798fff98b1f5aa94ec0ca..5248c33ef875eff1c77dcd5f6e82e0a786b71383 100644 --- a/config/initializers/acts_as_taggable_on.rb +++ b/config/initializers/acts_as_taggable_on.rb @@ -1,2 +1,2 @@ -require 'models/acts_as_taggable_on/tag' +require 'models/acts_as_taggable_on-tag' ActsAsTaggableOn.force_lowercase = true diff --git a/db/migrate/20140601102543_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb b/db/migrate/20140601102543_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb new file mode 100644 index 0000000000000000000000000000000000000000..8edb508078131059ac506257527d5dc02bad67be --- /dev/null +++ b/db/migrate/20140601102543_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb @@ -0,0 +1,15 @@ +# This migration comes from acts_as_taggable_on_engine (originally 3) +class AddTaggingsCounterCacheToTags < ActiveRecord::Migration + def self.up + add_column :tags, :taggings_count, :integer, default: 0 + + ActsAsTaggableOn::Tag.reset_column_information + ActsAsTaggableOn::Tag.find_each do |tag| + ActsAsTaggableOn::Tag.reset_counters(tag.id, :taggings) + end + end + + def self.down + remove_column :tags, :taggings_count + end +end diff --git a/db/schema.rb b/db/schema.rb index 8ae07e086ec40b8fb8c84f3e78d2ce9dc17bfee8..e835151fb2e0878ed2104ea337742cb751e1b6d3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20140422134627) do +ActiveRecord::Schema.define(:version => 20140601102543) do create_table "account_deletions", :force => true do |t| t.string "diaspora_handle" @@ -482,7 +482,8 @@ ActiveRecord::Schema.define(:version => 20140422134627) do add_index "taggings", ["taggable_id", "taggable_type", "tag_id"], :name => "index_taggings_uniquely", :unique => true create_table "tags", :force => true do |t| - t.string "name" + t.string "name" + t.integer "taggings_count", :default => 0 end add_index "tags", ["name"], :name => "index_tags_on_name", :unique => true