acts-as-taggable-on 6.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.
- checksums.yaml +4 -4
- data/.github/workflows/spec.yml +95 -0
- data/Appraisals +8 -0
- data/CHANGELOG.md +199 -140
- data/Gemfile +1 -0
- data/README.md +38 -4
- data/acts-as-taggable-on.gemspec +2 -2
- 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 +2 -4
- data/gemfiles/activerecord_5.1.gemfile +2 -4
- data/gemfiles/activerecord_5.2.gemfile +2 -4
- data/gemfiles/activerecord_6.0.gemfile +21 -0
- data/gemfiles/activerecord_6.1.gemfile +23 -0
- 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/cache.rb +38 -34
- data/lib/acts_as_taggable_on/taggable/collection.rb +8 -6
- data/lib/acts_as_taggable_on/taggable/core.rb +22 -6
- data/lib/acts_as_taggable_on/taggable/tag_list_type.rb +4 -0
- data/lib/acts_as_taggable_on/taggable/tagged_with_query/query_base.rb +4 -4
- data/lib/acts_as_taggable_on/taggable.rb +18 -0
- 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 -0
- 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/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 +16 -12
- 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 +20 -20
- data/.travis.yml +0 -33
- data/UPGRADING.md +0 -8
- data/spec/internal/app/models/models.rb +0 -90
@@ -4,16 +4,12 @@ sqlite3:
|
|
4
4
|
|
5
5
|
mysql:
|
6
6
|
adapter: mysql2
|
7
|
-
host:
|
7
|
+
host: 127.0.0.1
|
8
8
|
username: root
|
9
9
|
password:
|
10
10
|
database: acts_as_taggable_on
|
11
|
-
|
11
|
+
encoding: utf8
|
12
12
|
|
13
13
|
postgresql:
|
14
|
-
|
15
|
-
|
16
|
-
username: postgres
|
17
|
-
password:
|
18
|
-
database: acts_as_taggable_on
|
19
|
-
encoding: utf8
|
14
|
+
# Needs to be given as a URL to force connection via TCP
|
15
|
+
url: postgresql://postgres:postgres@127.0.0.1:5432/acts_as_taggable_on?encoding=utf8
|
data/spec/internal/db/schema.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
ActiveRecord::Schema.define version: 0 do
|
2
|
-
create_table
|
2
|
+
create_table ActsAsTaggableOn.tags_table, force: true do |t|
|
3
3
|
t.string :name
|
4
4
|
t.integer :taggings_count, default: 0
|
5
5
|
t.string :type
|
6
6
|
end
|
7
|
-
add_index
|
7
|
+
add_index ActsAsTaggableOn.tags_table, ['name'], name: 'index_tags_on_name', unique: true
|
8
8
|
|
9
|
-
create_table
|
9
|
+
create_table ActsAsTaggableOn.taggings_table, force: true do |t|
|
10
10
|
t.integer :tag_id
|
11
11
|
|
12
12
|
# You should make sure that the column created is
|
@@ -21,12 +21,14 @@ ActiveRecord::Schema.define version: 0 do
|
|
21
21
|
# length for MyISAM table type: http://bit.ly/vgW2Ql
|
22
22
|
t.string :context, limit: 128
|
23
23
|
|
24
|
+
t.string :tenant , limit: 128
|
25
|
+
|
24
26
|
t.datetime :created_at
|
25
27
|
end
|
26
|
-
add_index
|
28
|
+
add_index ActsAsTaggableOn.taggings_table,
|
27
29
|
['tag_id', 'taggable_id', 'taggable_type', 'context', 'tagger_id', 'tagger_type'],
|
28
30
|
unique: true, name: 'taggings_idx'
|
29
|
-
add_index
|
31
|
+
add_index ActsAsTaggableOn.taggings_table, :tag_id , name: 'index_taggings_on_tag_id'
|
30
32
|
|
31
33
|
# above copied from
|
32
34
|
# generators/acts_as_taggable_on/migration/migration_generator
|
@@ -34,6 +36,13 @@ ActiveRecord::Schema.define version: 0 do
|
|
34
36
|
create_table :taggable_models, force: true do |t|
|
35
37
|
t.column :name, :string
|
36
38
|
t.column :type, :string
|
39
|
+
t.column :tenant_id, :integer
|
40
|
+
end
|
41
|
+
|
42
|
+
create_table :columns_override_models, force: true do |t|
|
43
|
+
t.column :name, :string
|
44
|
+
t.column :type, :string
|
45
|
+
t.column :ignored_column, :string
|
37
46
|
end
|
38
47
|
|
39
48
|
create_table :non_standard_id_taggable_models, primary_key: 'an_id', force: true do |t|
|
data/spec/spec_helper.rb
CHANGED
data/spec/support/database.rb
CHANGED
@@ -10,7 +10,7 @@ if File.exist?(database_yml)
|
|
10
10
|
ActiveRecord::Base.configurations = YAML.load_file(database_yml)
|
11
11
|
ActiveRecord::Base.logger = Logger.new(File.join(File.dirname(__FILE__), '../debug.log'))
|
12
12
|
ActiveRecord::Base.logger.level = ENV['TRAVIS'] ? ::Logger::ERROR : ::Logger::DEBUG
|
13
|
-
config = ActiveRecord::Base.configurations[db_name]
|
13
|
+
config = ActiveSupport::HashWithIndifferentAccess.new(ActiveRecord::Base.configurations[db_name])
|
14
14
|
|
15
15
|
begin
|
16
16
|
ActiveRecord::Base.establish_connection(db_name.to_sym)
|
@@ -28,9 +28,9 @@ if File.exist?(database_yml)
|
|
28
28
|
ActiveRecord::Base.establish_connection(config)
|
29
29
|
end
|
30
30
|
|
31
|
-
|
32
|
-
|
31
|
+
require File.dirname(__FILE__) + '/../internal/db/schema.rb'
|
32
|
+
Dir[File.dirname(__dir__) + '/internal/app/models/*.rb'].each { |f| require f }
|
33
33
|
|
34
34
|
else
|
35
35
|
fail "Please create #{database_yml} first to configure your database. Take a look at: #{database_yml}.sample"
|
36
|
-
end
|
36
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts-as-taggable-on
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 8.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Bleigh
|
@@ -9,22 +9,28 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-06-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '5.0'
|
21
|
+
- - "<"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '6.2'
|
21
24
|
type: :runtime
|
22
25
|
prerelease: false
|
23
26
|
version_requirements: !ruby/object:Gem::Requirement
|
24
27
|
requirements:
|
25
|
-
- - "
|
28
|
+
- - ">="
|
26
29
|
- !ruby/object:Gem::Version
|
27
30
|
version: '5.0'
|
31
|
+
- - "<"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '6.2'
|
28
34
|
- !ruby/object:Gem::Dependency
|
29
35
|
name: rspec-rails
|
30
36
|
requirement: !ruby/object:Gem::Requirement
|
@@ -104,9 +110,9 @@ executables: []
|
|
104
110
|
extensions: []
|
105
111
|
extra_rdoc_files: []
|
106
112
|
files:
|
113
|
+
- ".github/workflows/spec.yml"
|
107
114
|
- ".gitignore"
|
108
115
|
- ".rspec"
|
109
|
-
- ".travis.yml"
|
110
116
|
- Appraisals
|
111
117
|
- CHANGELOG.md
|
112
118
|
- CONTRIBUTING.md
|
@@ -115,7 +121,6 @@ files:
|
|
115
121
|
- LICENSE.md
|
116
122
|
- README.md
|
117
123
|
- Rakefile
|
118
|
-
- UPGRADING.md
|
119
124
|
- acts-as-taggable-on.gemspec
|
120
125
|
- db/migrate/1_acts_as_taggable_on_migration.rb
|
121
126
|
- db/migrate/2_add_missing_unique_indices.rb
|
@@ -123,9 +128,12 @@ files:
|
|
123
128
|
- db/migrate/4_add_missing_taggable_index.rb
|
124
129
|
- db/migrate/5_change_collation_for_tag_names.rb
|
125
130
|
- db/migrate/6_add_missing_indexes_on_taggings.rb
|
131
|
+
- db/migrate/7_add_tenant_to_taggings.rb
|
126
132
|
- gemfiles/activerecord_5.0.gemfile
|
127
133
|
- gemfiles/activerecord_5.1.gemfile
|
128
134
|
- gemfiles/activerecord_5.2.gemfile
|
135
|
+
- gemfiles/activerecord_6.0.gemfile
|
136
|
+
- gemfiles/activerecord_6.1.gemfile
|
129
137
|
- lib/acts-as-taggable-on.rb
|
130
138
|
- lib/acts_as_taggable_on.rb
|
131
139
|
- lib/acts_as_taggable_on/default_parser.rb
|
@@ -139,6 +147,7 @@ files:
|
|
139
147
|
- lib/acts_as_taggable_on/taggable/core.rb
|
140
148
|
- lib/acts_as_taggable_on/taggable/ownership.rb
|
141
149
|
- lib/acts_as_taggable_on/taggable/related.rb
|
150
|
+
- lib/acts_as_taggable_on/taggable/tag_list_type.rb
|
142
151
|
- lib/acts_as_taggable_on/taggable/tagged_with_query.rb
|
143
152
|
- lib/acts_as_taggable_on/taggable/tagged_with_query/all_tags_query.rb
|
144
153
|
- lib/acts_as_taggable_on/taggable/tagged_with_query/any_tags_query.rb
|
@@ -168,10 +177,10 @@ files:
|
|
168
177
|
- spec/internal/app/models/altered_inheriting_taggable_model.rb
|
169
178
|
- spec/internal/app/models/cached_model.rb
|
170
179
|
- spec/internal/app/models/cached_model_with_array.rb
|
180
|
+
- spec/internal/app/models/columns_override_model.rb
|
171
181
|
- spec/internal/app/models/company.rb
|
172
182
|
- spec/internal/app/models/inheriting_taggable_model.rb
|
173
183
|
- spec/internal/app/models/market.rb
|
174
|
-
- spec/internal/app/models/models.rb
|
175
184
|
- spec/internal/app/models/non_standard_id_taggable_model.rb
|
176
185
|
- spec/internal/app/models/ordered_taggable_model.rb
|
177
186
|
- spec/internal/app/models/other_cached_model.rb
|
@@ -191,15 +200,7 @@ homepage: https://github.com/mbleigh/acts-as-taggable-on
|
|
191
200
|
licenses:
|
192
201
|
- MIT
|
193
202
|
metadata: {}
|
194
|
-
post_install_message:
|
195
|
-
When upgrading
|
196
|
-
|
197
|
-
Re-run the migrations generator
|
198
|
-
|
199
|
-
rake acts_as_taggable_on_engine:install:migrations
|
200
|
-
|
201
|
-
This will create any new migrations and skip existing ones
|
202
|
-
Version 3.5.0 has a migration for mysql adapter
|
203
|
+
post_install_message:
|
203
204
|
rdoc_options: []
|
204
205
|
require_paths:
|
205
206
|
- lib
|
@@ -207,15 +208,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
207
208
|
requirements:
|
208
209
|
- - ">="
|
209
210
|
- !ruby/object:Gem::Version
|
210
|
-
version: 2.
|
211
|
+
version: 2.3.7
|
211
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
213
|
requirements:
|
213
214
|
- - ">="
|
214
215
|
- !ruby/object:Gem::Version
|
215
216
|
version: '0'
|
216
217
|
requirements: []
|
217
|
-
|
218
|
-
rubygems_version: 2.7.6
|
218
|
+
rubygems_version: 3.0.3
|
219
219
|
signing_key:
|
220
220
|
specification_version: 4
|
221
221
|
summary: Advanced tagging for Rails.
|
@@ -238,10 +238,10 @@ test_files:
|
|
238
238
|
- spec/internal/app/models/altered_inheriting_taggable_model.rb
|
239
239
|
- spec/internal/app/models/cached_model.rb
|
240
240
|
- spec/internal/app/models/cached_model_with_array.rb
|
241
|
+
- spec/internal/app/models/columns_override_model.rb
|
241
242
|
- spec/internal/app/models/company.rb
|
242
243
|
- spec/internal/app/models/inheriting_taggable_model.rb
|
243
244
|
- spec/internal/app/models/market.rb
|
244
|
-
- spec/internal/app/models/models.rb
|
245
245
|
- spec/internal/app/models/non_standard_id_taggable_model.rb
|
246
246
|
- spec/internal/app/models/ordered_taggable_model.rb
|
247
247
|
- spec/internal/app/models/other_cached_model.rb
|
data/.travis.yml
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
cache: bundler
|
3
|
-
|
4
|
-
rvm:
|
5
|
-
- ruby-head
|
6
|
-
- 2.5.1
|
7
|
-
- 2.4.4
|
8
|
-
- 2.3.7
|
9
|
-
- 2.2.7
|
10
|
-
|
11
|
-
env:
|
12
|
-
- DB=sqlite3
|
13
|
-
- DB=mysql
|
14
|
-
- DB=postgresql
|
15
|
-
|
16
|
-
gemfile:
|
17
|
-
- gemfiles/activerecord_5.2.gemfile
|
18
|
-
- gemfiles/activerecord_5.1.gemfile
|
19
|
-
- gemfiles/activerecord_5.0.gemfile
|
20
|
-
|
21
|
-
sudo: false
|
22
|
-
|
23
|
-
bundler_args: '--without local_development --jobs 3 --retry 3'
|
24
|
-
|
25
|
-
before_install:
|
26
|
-
- gem install bundler
|
27
|
-
|
28
|
-
script: bundle exec rake
|
29
|
-
|
30
|
-
matrix:
|
31
|
-
allow_failures:
|
32
|
-
- rvm: ruby-head
|
33
|
-
fast_finish: true
|
data/UPGRADING.md
DELETED
@@ -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
|