acts-as-taggable-on 5.0.0 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/spec.yml +95 -0
  3. data/.gitignore +1 -1
  4. data/Appraisals +11 -3
  5. data/CHANGELOG.md +203 -145
  6. data/Gemfile +3 -2
  7. data/README.md +38 -4
  8. data/acts-as-taggable-on.gemspec +2 -6
  9. data/db/migrate/1_acts_as_taggable_on_migration.rb +8 -7
  10. data/db/migrate/2_add_missing_unique_indices.rb +8 -8
  11. data/db/migrate/3_add_taggings_counter_cache_to_tags.rb +3 -3
  12. data/db/migrate/4_add_missing_taggable_index.rb +2 -2
  13. data/db/migrate/5_change_collation_for_tag_names.rb +1 -1
  14. data/db/migrate/6_add_missing_indexes_on_taggings.rb +9 -9
  15. data/db/migrate/7_add_tenant_to_taggings.rb +16 -0
  16. data/gemfiles/activerecord_5.0.gemfile +9 -3
  17. data/gemfiles/activerecord_5.1.gemfile +9 -3
  18. data/gemfiles/activerecord_5.2.gemfile +21 -0
  19. data/gemfiles/activerecord_6.0.gemfile +21 -0
  20. data/gemfiles/{activerecord_4.2.gemfile → activerecord_6.1.gemfile} +10 -2
  21. data/lib/acts-as-taggable-on.rb +6 -2
  22. data/lib/acts_as_taggable_on/tag.rb +16 -19
  23. data/lib/acts_as_taggable_on/taggable.rb +18 -1
  24. data/lib/acts_as_taggable_on/taggable/cache.rb +38 -34
  25. data/lib/acts_as_taggable_on/taggable/collection.rb +9 -7
  26. data/lib/acts_as_taggable_on/taggable/core.rb +39 -22
  27. data/lib/acts_as_taggable_on/taggable/ownership.rb +1 -1
  28. data/lib/acts_as_taggable_on/taggable/related.rb +1 -1
  29. data/lib/acts_as_taggable_on/taggable/tag_list_type.rb +4 -0
  30. data/lib/acts_as_taggable_on/taggable/tagged_with_query/all_tags_query.rb +2 -4
  31. data/lib/acts_as_taggable_on/taggable/tagged_with_query/any_tags_query.rb +2 -7
  32. data/lib/acts_as_taggable_on/taggable/tagged_with_query/exclude_tags_query.rb +1 -1
  33. data/lib/acts_as_taggable_on/taggable/tagged_with_query/query_base.rb +5 -5
  34. data/lib/acts_as_taggable_on/tagger.rb +1 -1
  35. data/lib/acts_as_taggable_on/tagging.rb +6 -2
  36. data/lib/acts_as_taggable_on/utils.rb +4 -4
  37. data/lib/acts_as_taggable_on/version.rb +1 -2
  38. data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +4 -12
  39. data/spec/acts_as_taggable_on/caching_spec.rb +16 -10
  40. data/spec/acts_as_taggable_on/{taggable/dirty_spec.rb → dirty_spec.rb} +28 -13
  41. data/spec/acts_as_taggable_on/single_table_inheritance_spec.rb +12 -7
  42. data/spec/acts_as_taggable_on/tag_spec.rb +16 -1
  43. data/spec/acts_as_taggable_on/taggable_spec.rb +21 -14
  44. data/spec/acts_as_taggable_on/tagger_spec.rb +2 -2
  45. data/spec/acts_as_taggable_on/tagging_spec.rb +26 -0
  46. data/spec/internal/app/models/altered_inheriting_taggable_model.rb +2 -0
  47. data/spec/internal/app/models/cached_model_with_array.rb +6 -0
  48. data/spec/internal/app/models/columns_override_model.rb +5 -0
  49. data/spec/internal/app/models/company.rb +1 -1
  50. data/spec/internal/app/models/inheriting_taggable_model.rb +2 -0
  51. data/spec/internal/app/models/market.rb +1 -1
  52. data/spec/internal/app/models/non_standard_id_taggable_model.rb +1 -1
  53. data/spec/internal/app/models/student.rb +2 -0
  54. data/spec/internal/app/models/taggable_model.rb +3 -0
  55. data/spec/internal/app/models/user.rb +1 -1
  56. data/spec/internal/config/database.yml.sample +4 -8
  57. data/spec/internal/db/schema.rb +14 -5
  58. data/spec/spec_helper.rb +0 -1
  59. data/spec/support/database.rb +4 -4
  60. metadata +22 -65
  61. data/.travis.yml +0 -29
  62. data/UPGRADING.md +0 -8
  63. data/lib/acts_as_taggable_on/taggable/dirty.rb +0 -36
  64. data/spec/internal/app/models/models.rb +0 -90
data/.travis.yml DELETED
@@ -1,29 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
-
4
- rvm:
5
- - 2.4.1
6
- - 2.3.3
7
- - 2.2.7
8
-
9
- env:
10
- - DB=sqlite3
11
- - DB=mysql
12
- - DB=postgresql
13
-
14
- gemfile:
15
- - gemfiles/activerecord_5.1.gemfile
16
- - gemfiles/activerecord_5.0.gemfile
17
- - gemfiles/activerecord_4.2.gemfile
18
-
19
- sudo: false
20
-
21
- bundler_args: '--without local_development --jobs 3 --retry 3'
22
-
23
- before_install:
24
- - gem install bundler
25
-
26
- script: bundle exec rake
27
-
28
- matrix:
29
- fast_finish: true
data/UPGRADING.md DELETED
@@ -1,8 +0,0 @@
1
- When upgrading
2
-
3
- Re-run the migrations generator
4
-
5
- rake acts_as_taggable_on_engine:install:migrations
6
-
7
- This will create any new migrations and skip existing ones
8
- Version 3.5.0 has a migration for mysql adapter
@@ -1,36 +0,0 @@
1
- module ActsAsTaggableOn::Taggable
2
- module Dirty
3
- def self.included(base)
4
- base.extend ActsAsTaggableOn::Taggable::Dirty::ClassMethods
5
-
6
- base.initialize_acts_as_taggable_on_dirty
7
- end
8
-
9
- module ClassMethods
10
- def initialize_acts_as_taggable_on_dirty
11
- tag_types.map(&:to_s).each do |tags_type|
12
- tag_type = tags_type.to_s.singularize
13
-
14
- class_eval <<-RUBY, __FILE__, __LINE__ + 1
15
- def #{tag_type}_list_changed?
16
- changed_attributes.include?("#{tag_type}_list")
17
- end
18
-
19
- def #{tag_type}_list_was
20
- changed_attributes.include?("#{tag_type}_list") ? changed_attributes["#{tag_type}_list"] : __send__("#{tag_type}_list")
21
- end
22
-
23
- def #{tag_type}_list_change
24
- [changed_attributes['#{tag_type}_list'], __send__('#{tag_type}_list')] if changed_attributes.include?("#{tag_type}_list")
25
- end
26
-
27
- def #{tag_type}_list_changes
28
- [changed_attributes['#{tag_type}_list'], __send__('#{tag_type}_list')] if changed_attributes.include?("#{tag_type}_list")
29
- end
30
- RUBY
31
-
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,90 +0,0 @@
1
- class TaggableModel < ActiveRecord::Base
2
- acts_as_taggable
3
- acts_as_taggable_on :languages
4
- acts_as_taggable_on :skills
5
- acts_as_taggable_on :needs, :offerings
6
- has_many :untaggable_models
7
-
8
- attr_reader :tag_list_submethod_called
9
-
10
- def tag_list=(v)
11
- @tag_list_submethod_called = true
12
- super
13
- end
14
- end
15
-
16
- class CachedModel < ActiveRecord::Base
17
- acts_as_taggable
18
- end
19
-
20
- class OtherCachedModel < ActiveRecord::Base
21
- acts_as_taggable_on :languages, :statuses, :glasses
22
- end
23
-
24
- class OtherTaggableModel < ActiveRecord::Base
25
- acts_as_taggable_on :tags, :languages
26
- acts_as_taggable_on :needs, :offerings
27
- end
28
-
29
- class InheritingTaggableModel < TaggableModel
30
- end
31
-
32
- class AlteredInheritingTaggableModel < TaggableModel
33
- acts_as_taggable_on :parts
34
- end
35
-
36
- class Market < ActsAsTaggableOn::Tag
37
- end
38
-
39
- class Company < ActiveRecord::Base
40
- acts_as_taggable_on :locations, :markets
41
-
42
- has_many :markets, :through => :market_taggings, :source => :tag
43
-
44
- private
45
-
46
- def find_or_create_tags_from_list_with_context(tag_list, context)
47
- if context.to_sym == :markets
48
- Market.find_or_create_all_with_like_by_name(tag_list)
49
- else
50
- super
51
- end
52
- end
53
- end
54
-
55
- class User < ActiveRecord::Base
56
- acts_as_tagger
57
- end
58
-
59
- class Student < User
60
- end
61
-
62
- class UntaggableModel < ActiveRecord::Base
63
- belongs_to :taggable_model
64
- end
65
-
66
- class NonStandardIdTaggableModel < ActiveRecord::Base
67
- self.primary_key = :an_id
68
- acts_as_taggable
69
- acts_as_taggable_on :languages
70
- acts_as_taggable_on :skills
71
- acts_as_taggable_on :needs, :offerings
72
- has_many :untaggable_models
73
- end
74
-
75
- class OrderedTaggableModel < ActiveRecord::Base
76
- acts_as_ordered_taggable
77
- acts_as_ordered_taggable_on :colours
78
- end
79
-
80
- if using_postgresql?
81
- class CachedModelWithArray < ActiveRecord::Base
82
- acts_as_taggable
83
- end
84
- if postgresql_support_json?
85
- class TaggableModelWithJson < ActiveRecord::Base
86
- acts_as_taggable
87
- acts_as_taggable_on :skills
88
- end
89
- end
90
- end