acts-as-taggable-on 5.0.0 → 8.1.0

Sign up to get free protection for your applications and to get access to all the features.
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