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.
- checksums.yaml +5 -5
- data/.github/workflows/spec.yml +95 -0
- data/.gitignore +1 -1
- data/Appraisals +11 -3
- data/CHANGELOG.md +203 -145
- data/Gemfile +3 -2
- data/README.md +38 -4
- data/acts-as-taggable-on.gemspec +2 -6
- data/db/migrate/1_acts_as_taggable_on_migration.rb +8 -7
- data/db/migrate/2_add_missing_unique_indices.rb +8 -8
- data/db/migrate/3_add_taggings_counter_cache_to_tags.rb +3 -3
- data/db/migrate/4_add_missing_taggable_index.rb +2 -2
- data/db/migrate/5_change_collation_for_tag_names.rb +1 -1
- data/db/migrate/6_add_missing_indexes_on_taggings.rb +9 -9
- data/db/migrate/7_add_tenant_to_taggings.rb +16 -0
- data/gemfiles/activerecord_5.0.gemfile +9 -3
- data/gemfiles/activerecord_5.1.gemfile +9 -3
- data/gemfiles/activerecord_5.2.gemfile +21 -0
- data/gemfiles/activerecord_6.0.gemfile +21 -0
- data/gemfiles/{activerecord_4.2.gemfile → activerecord_6.1.gemfile} +10 -2
- data/lib/acts-as-taggable-on.rb +6 -2
- data/lib/acts_as_taggable_on/tag.rb +16 -19
- data/lib/acts_as_taggable_on/taggable.rb +18 -1
- data/lib/acts_as_taggable_on/taggable/cache.rb +38 -34
- data/lib/acts_as_taggable_on/taggable/collection.rb +9 -7
- data/lib/acts_as_taggable_on/taggable/core.rb +39 -22
- data/lib/acts_as_taggable_on/taggable/ownership.rb +1 -1
- data/lib/acts_as_taggable_on/taggable/related.rb +1 -1
- data/lib/acts_as_taggable_on/taggable/tag_list_type.rb +4 -0
- data/lib/acts_as_taggable_on/taggable/tagged_with_query/all_tags_query.rb +2 -4
- data/lib/acts_as_taggable_on/taggable/tagged_with_query/any_tags_query.rb +2 -7
- data/lib/acts_as_taggable_on/taggable/tagged_with_query/exclude_tags_query.rb +1 -1
- data/lib/acts_as_taggable_on/taggable/tagged_with_query/query_base.rb +5 -5
- data/lib/acts_as_taggable_on/tagger.rb +1 -1
- data/lib/acts_as_taggable_on/tagging.rb +6 -2
- data/lib/acts_as_taggable_on/utils.rb +4 -4
- data/lib/acts_as_taggable_on/version.rb +1 -2
- data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +4 -12
- data/spec/acts_as_taggable_on/caching_spec.rb +16 -10
- data/spec/acts_as_taggable_on/{taggable/dirty_spec.rb → dirty_spec.rb} +28 -13
- data/spec/acts_as_taggable_on/single_table_inheritance_spec.rb +12 -7
- data/spec/acts_as_taggable_on/tag_spec.rb +16 -1
- data/spec/acts_as_taggable_on/taggable_spec.rb +21 -14
- data/spec/acts_as_taggable_on/tagger_spec.rb +2 -2
- data/spec/acts_as_taggable_on/tagging_spec.rb +26 -0
- data/spec/internal/app/models/altered_inheriting_taggable_model.rb +2 -0
- data/spec/internal/app/models/cached_model_with_array.rb +6 -0
- data/spec/internal/app/models/columns_override_model.rb +5 -0
- data/spec/internal/app/models/company.rb +1 -1
- data/spec/internal/app/models/inheriting_taggable_model.rb +2 -0
- data/spec/internal/app/models/market.rb +1 -1
- data/spec/internal/app/models/non_standard_id_taggable_model.rb +1 -1
- data/spec/internal/app/models/student.rb +2 -0
- data/spec/internal/app/models/taggable_model.rb +3 -0
- data/spec/internal/app/models/user.rb +1 -1
- data/spec/internal/config/database.yml.sample +4 -8
- data/spec/internal/db/schema.rb +14 -5
- data/spec/spec_helper.rb +0 -1
- data/spec/support/database.rb +4 -4
- metadata +22 -65
- data/.travis.yml +0 -29
- data/UPGRADING.md +0 -8
- data/lib/acts_as_taggable_on/taggable/dirty.rb +0 -36
- 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,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
|