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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/spec.yml +95 -0
  3. data/Appraisals +8 -0
  4. data/CHANGELOG.md +199 -140
  5. data/Gemfile +1 -0
  6. data/README.md +38 -4
  7. data/acts-as-taggable-on.gemspec +2 -2
  8. data/db/migrate/1_acts_as_taggable_on_migration.rb +8 -7
  9. data/db/migrate/2_add_missing_unique_indices.rb +8 -8
  10. data/db/migrate/3_add_taggings_counter_cache_to_tags.rb +3 -3
  11. data/db/migrate/4_add_missing_taggable_index.rb +2 -2
  12. data/db/migrate/5_change_collation_for_tag_names.rb +1 -1
  13. data/db/migrate/6_add_missing_indexes_on_taggings.rb +9 -9
  14. data/db/migrate/7_add_tenant_to_taggings.rb +16 -0
  15. data/gemfiles/activerecord_5.0.gemfile +2 -4
  16. data/gemfiles/activerecord_5.1.gemfile +2 -4
  17. data/gemfiles/activerecord_5.2.gemfile +2 -4
  18. data/gemfiles/activerecord_6.0.gemfile +21 -0
  19. data/gemfiles/activerecord_6.1.gemfile +23 -0
  20. data/lib/acts-as-taggable-on.rb +6 -2
  21. data/lib/acts_as_taggable_on/tag.rb +16 -19
  22. data/lib/acts_as_taggable_on/taggable/cache.rb +38 -34
  23. data/lib/acts_as_taggable_on/taggable/collection.rb +8 -6
  24. data/lib/acts_as_taggable_on/taggable/core.rb +22 -6
  25. data/lib/acts_as_taggable_on/taggable/tag_list_type.rb +4 -0
  26. data/lib/acts_as_taggable_on/taggable/tagged_with_query/query_base.rb +4 -4
  27. data/lib/acts_as_taggable_on/taggable.rb +18 -0
  28. data/lib/acts_as_taggable_on/tagger.rb +1 -1
  29. data/lib/acts_as_taggable_on/tagging.rb +6 -2
  30. data/lib/acts_as_taggable_on/utils.rb +4 -0
  31. data/lib/acts_as_taggable_on/version.rb +1 -2
  32. data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +4 -12
  33. data/spec/acts_as_taggable_on/caching_spec.rb +16 -10
  34. data/spec/acts_as_taggable_on/single_table_inheritance_spec.rb +12 -7
  35. data/spec/acts_as_taggable_on/tag_spec.rb +16 -1
  36. data/spec/acts_as_taggable_on/taggable_spec.rb +16 -12
  37. data/spec/acts_as_taggable_on/tagger_spec.rb +2 -2
  38. data/spec/acts_as_taggable_on/tagging_spec.rb +26 -0
  39. data/spec/internal/app/models/altered_inheriting_taggable_model.rb +2 -0
  40. data/spec/internal/app/models/cached_model_with_array.rb +6 -0
  41. data/spec/internal/app/models/columns_override_model.rb +5 -0
  42. data/spec/internal/app/models/company.rb +1 -1
  43. data/spec/internal/app/models/inheriting_taggable_model.rb +2 -0
  44. data/spec/internal/app/models/market.rb +1 -1
  45. data/spec/internal/app/models/non_standard_id_taggable_model.rb +1 -1
  46. data/spec/internal/app/models/student.rb +2 -0
  47. data/spec/internal/app/models/taggable_model.rb +3 -0
  48. data/spec/internal/app/models/user.rb +1 -1
  49. data/spec/internal/config/database.yml.sample +4 -8
  50. data/spec/internal/db/schema.rb +14 -5
  51. data/spec/spec_helper.rb +0 -1
  52. data/spec/support/database.rb +4 -4
  53. metadata +20 -20
  54. data/.travis.yml +0 -33
  55. data/UPGRADING.md +0 -8
  56. 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: localhost
7
+ host: 127.0.0.1
8
8
  username: root
9
9
  password:
10
10
  database: acts_as_taggable_on
11
- charset: utf8
11
+ encoding: utf8
12
12
 
13
13
  postgresql:
14
- adapter: postgresql
15
- hostname: localhost
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
@@ -1,12 +1,12 @@
1
1
  ActiveRecord::Schema.define version: 0 do
2
- create_table :tags, force: true do |t|
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 'tags', ['name'], name: 'index_tags_on_name', unique: true
7
+ add_index ActsAsTaggableOn.tags_table, ['name'], name: 'index_tags_on_name', unique: true
8
8
 
9
- create_table :taggings, force: true do |t|
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 'taggings',
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 'taggings', :tag_id , name: 'index_taggings_on_tag_id'
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
@@ -18,4 +18,3 @@ Dir['./spec/support/**/*.rb'].sort.each { |f| require f }
18
18
  RSpec.configure do |config|
19
19
  config.raise_errors_for_deprecations!
20
20
  end
21
-
@@ -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
- load(File.dirname(__FILE__) + '/../internal/db/schema.rb')
32
- load(File.dirname(__FILE__) + '/../internal/app/models/models.rb')
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: 6.0.0
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: 2018-06-18 00:00:00.000000000 Z
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.2.7
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
- rubyforge_project:
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,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,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