acts-as-taggable-on 4.0.0.pre → 7.0.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 (65) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -1
  3. data/.travis.yml +28 -15
  4. data/Appraisals +12 -10
  5. data/CHANGELOG.md +200 -71
  6. data/CONTRIBUTING.md +13 -0
  7. data/Gemfile +1 -1
  8. data/README.md +68 -28
  9. data/acts-as-taggable-on.gemspec +2 -6
  10. data/db/migrate/1_acts_as_taggable_on_migration.rb +14 -8
  11. data/db/migrate/2_add_missing_unique_indices.rb +14 -9
  12. data/db/migrate/3_add_taggings_counter_cache_to_tags.rb +9 -4
  13. data/db/migrate/4_add_missing_taggable_index.rb +8 -3
  14. data/db/migrate/5_change_collation_for_tag_names.rb +7 -2
  15. data/db/migrate/6_add_missing_indexes_on_taggings.rb +22 -0
  16. data/gemfiles/activerecord_5.0.gemfile +11 -5
  17. data/gemfiles/activerecord_5.1.gemfile +21 -0
  18. data/gemfiles/activerecord_5.2.gemfile +21 -0
  19. data/gemfiles/activerecord_6.0.gemfile +21 -0
  20. data/gemfiles/activerecord_6.1.gemfile +23 -0
  21. data/lib/acts-as-taggable-on.rb +6 -2
  22. data/lib/acts_as_taggable_on/tag.rb +17 -23
  23. data/lib/acts_as_taggable_on/tag_list.rb +1 -0
  24. data/lib/acts_as_taggable_on/taggable.rb +0 -1
  25. data/lib/acts_as_taggable_on/taggable/cache.rb +38 -34
  26. data/lib/acts_as_taggable_on/taggable/collection.rb +9 -7
  27. data/lib/acts_as_taggable_on/taggable/core.rb +41 -181
  28. data/lib/acts_as_taggable_on/taggable/ownership.rb +16 -5
  29. data/lib/acts_as_taggable_on/taggable/related.rb +1 -1
  30. data/lib/acts_as_taggable_on/taggable/tag_list_type.rb +4 -0
  31. data/lib/acts_as_taggable_on/taggable/tagged_with_query.rb +16 -0
  32. data/lib/acts_as_taggable_on/taggable/tagged_with_query/all_tags_query.rb +111 -0
  33. data/lib/acts_as_taggable_on/taggable/tagged_with_query/any_tags_query.rb +70 -0
  34. data/lib/acts_as_taggable_on/taggable/tagged_with_query/exclude_tags_query.rb +82 -0
  35. data/lib/acts_as_taggable_on/taggable/tagged_with_query/query_base.rb +61 -0
  36. data/lib/acts_as_taggable_on/tagger.rb +3 -3
  37. data/lib/acts_as_taggable_on/tagging.rb +6 -3
  38. data/lib/acts_as_taggable_on/utils.rb +4 -4
  39. data/lib/acts_as_taggable_on/version.rb +1 -2
  40. data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +4 -12
  41. data/spec/acts_as_taggable_on/caching_spec.rb +34 -10
  42. data/spec/acts_as_taggable_on/{taggable/dirty_spec.rb → dirty_spec.rb} +28 -13
  43. data/spec/acts_as_taggable_on/single_table_inheritance_spec.rb +28 -8
  44. data/spec/acts_as_taggable_on/taggable_spec.rb +16 -13
  45. data/spec/acts_as_taggable_on/tagger_spec.rb +2 -2
  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 +1 -0
  55. data/spec/internal/app/models/user.rb +1 -1
  56. data/spec/internal/db/schema.rb +14 -5
  57. data/spec/spec_helper.rb +0 -1
  58. data/spec/support/database.rb +4 -4
  59. metadata +30 -61
  60. data/db/migrate/6_add_missing_indexes.rb +0 -12
  61. data/gemfiles/activerecord_4.0.gemfile +0 -16
  62. data/gemfiles/activerecord_4.1.gemfile +0 -16
  63. data/gemfiles/activerecord_4.2.gemfile +0 -15
  64. data/lib/acts_as_taggable_on/taggable/dirty.rb +0 -36
  65. data/spec/internal/app/models/models.rb +0 -90
@@ -0,0 +1,5 @@
1
+ class ColumnsOverrideModel < ActiveRecord::Base
2
+ def self.columns
3
+ super.reject { |c| c.name == 'ignored_column' }
4
+ end
5
+ end
@@ -12,4 +12,4 @@ class Company < ActiveRecord::Base
12
12
  super
13
13
  end
14
14
  end
15
- end
15
+ end
@@ -1,2 +1,4 @@
1
+ require_relative 'taggable_model'
2
+
1
3
  class InheritingTaggableModel < TaggableModel
2
4
  end
@@ -1,2 +1,2 @@
1
1
  class Market < ActsAsTaggableOn::Tag
2
- end
2
+ end
@@ -1,5 +1,5 @@
1
1
  class NonStandardIdTaggableModel < ActiveRecord::Base
2
- self.primary_key = 'an_id'
2
+ self.primary_key = :an_id
3
3
  acts_as_taggable
4
4
  acts_as_taggable_on :languages
5
5
  acts_as_taggable_on :skills
@@ -1,2 +1,4 @@
1
+ require_relative 'user'
2
+
1
3
  class Student < User
2
4
  end
@@ -6,6 +6,7 @@ class TaggableModel < ActiveRecord::Base
6
6
  has_many :untaggable_models
7
7
 
8
8
  attr_reader :tag_list_submethod_called
9
+
9
10
  def tag_list=(v)
10
11
  @tag_list_submethod_called = true
11
12
  super
@@ -1,3 +1,3 @@
1
1
  class User < ActiveRecord::Base
2
2
  acts_as_tagger
3
- end
3
+ end
@@ -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
@@ -23,10 +23,10 @@ ActiveRecord::Schema.define version: 0 do
23
23
 
24
24
  t.datetime :created_at
25
25
  end
26
- add_index 'taggings',
26
+ add_index ActsAsTaggableOn.taggings_table,
27
27
  ['tag_id', 'taggable_id', 'taggable_type', 'context', 'tagger_id', 'tagger_type'],
28
28
  unique: true, name: 'taggings_idx'
29
- add_index 'taggings', :tag_id , name: 'index_taggings_on_tag_id'
29
+ add_index ActsAsTaggableOn.taggings_table, :tag_id , name: 'index_taggings_on_tag_id'
30
30
 
31
31
  # above copied from
32
32
  # generators/acts_as_taggable_on/migration/migration_generator
@@ -36,6 +36,12 @@ ActiveRecord::Schema.define version: 0 do
36
36
  t.column :type, :string
37
37
  end
38
38
 
39
+ create_table :columns_override_models, force: true do |t|
40
+ t.column :name, :string
41
+ t.column :type, :string
42
+ t.column :ignored_column, :string
43
+ end
44
+
39
45
  create_table :non_standard_id_taggable_models, primary_key: 'an_id', force: true do |t|
40
46
  t.column :name, :string
41
47
  t.column :type, :string
@@ -78,6 +84,9 @@ ActiveRecord::Schema.define version: 0 do
78
84
  t.column :type, :string
79
85
  end
80
86
 
87
+ create_table :cache_methods_injected_models, force: true do |t|
88
+ t.column :cached_tag_list, :string
89
+ end
81
90
 
82
91
  # Special cases for postgresql
83
92
  if using_postgresql?
@@ -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,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts-as-taggable-on
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.pre
4
+ version: 7.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Bleigh
8
8
  - Joost Baaij
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-07-17 00:00:00.000000000 Z
12
+ date: 2020-12-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -17,56 +17,20 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '4.0'
21
- type: :runtime
22
- prerelease: false
23
- version_requirements: !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- version: '4.0'
28
- - !ruby/object:Gem::Dependency
29
- name: sqlite3
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: '0'
35
- type: :development
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- version: '0'
42
- - !ruby/object:Gem::Dependency
43
- name: mysql2
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
20
+ version: '5.0'
21
+ - - "<"
47
22
  - !ruby/object:Gem::Version
48
- version: '0.3'
49
- type: :development
23
+ version: '6.2'
24
+ type: :runtime
50
25
  prerelease: false
51
26
  version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: '0.3'
56
- - !ruby/object:Gem::Dependency
57
- name: pg
58
- requirement: !ruby/object:Gem::Requirement
59
27
  requirements:
60
28
  - - ">="
61
29
  - !ruby/object:Gem::Version
62
- version: '0'
63
- type: :development
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - ">="
30
+ version: '5.0'
31
+ - - "<"
68
32
  - !ruby/object:Gem::Version
69
- version: '0'
33
+ version: '6.2'
70
34
  - !ruby/object:Gem::Dependency
71
35
  name: rspec-rails
72
36
  requirement: !ruby/object:Gem::Requirement
@@ -164,11 +128,12 @@ files:
164
128
  - db/migrate/3_add_taggings_counter_cache_to_tags.rb
165
129
  - db/migrate/4_add_missing_taggable_index.rb
166
130
  - db/migrate/5_change_collation_for_tag_names.rb
167
- - db/migrate/6_add_missing_indexes.rb
168
- - gemfiles/activerecord_4.0.gemfile
169
- - gemfiles/activerecord_4.1.gemfile
170
- - gemfiles/activerecord_4.2.gemfile
131
+ - db/migrate/6_add_missing_indexes_on_taggings.rb
171
132
  - gemfiles/activerecord_5.0.gemfile
133
+ - gemfiles/activerecord_5.1.gemfile
134
+ - gemfiles/activerecord_5.2.gemfile
135
+ - gemfiles/activerecord_6.0.gemfile
136
+ - gemfiles/activerecord_6.1.gemfile
172
137
  - lib/acts-as-taggable-on.rb
173
138
  - lib/acts_as_taggable_on.rb
174
139
  - lib/acts_as_taggable_on/default_parser.rb
@@ -180,9 +145,14 @@ files:
180
145
  - lib/acts_as_taggable_on/taggable/cache.rb
181
146
  - lib/acts_as_taggable_on/taggable/collection.rb
182
147
  - lib/acts_as_taggable_on/taggable/core.rb
183
- - lib/acts_as_taggable_on/taggable/dirty.rb
184
148
  - lib/acts_as_taggable_on/taggable/ownership.rb
185
149
  - lib/acts_as_taggable_on/taggable/related.rb
150
+ - lib/acts_as_taggable_on/taggable/tag_list_type.rb
151
+ - lib/acts_as_taggable_on/taggable/tagged_with_query.rb
152
+ - lib/acts_as_taggable_on/taggable/tagged_with_query/all_tags_query.rb
153
+ - lib/acts_as_taggable_on/taggable/tagged_with_query/any_tags_query.rb
154
+ - lib/acts_as_taggable_on/taggable/tagged_with_query/exclude_tags_query.rb
155
+ - lib/acts_as_taggable_on/taggable/tagged_with_query/query_base.rb
186
156
  - lib/acts_as_taggable_on/tagger.rb
187
157
  - lib/acts_as_taggable_on/tagging.rb
188
158
  - lib/acts_as_taggable_on/tags_helper.rb
@@ -193,12 +163,12 @@ files:
193
163
  - spec/acts_as_taggable_on/acts_as_tagger_spec.rb
194
164
  - spec/acts_as_taggable_on/caching_spec.rb
195
165
  - spec/acts_as_taggable_on/default_parser_spec.rb
166
+ - spec/acts_as_taggable_on/dirty_spec.rb
196
167
  - spec/acts_as_taggable_on/generic_parser_spec.rb
197
168
  - spec/acts_as_taggable_on/related_spec.rb
198
169
  - spec/acts_as_taggable_on/single_table_inheritance_spec.rb
199
170
  - spec/acts_as_taggable_on/tag_list_spec.rb
200
171
  - spec/acts_as_taggable_on/tag_spec.rb
201
- - spec/acts_as_taggable_on/taggable/dirty_spec.rb
202
172
  - spec/acts_as_taggable_on/taggable_spec.rb
203
173
  - spec/acts_as_taggable_on/tagger_spec.rb
204
174
  - spec/acts_as_taggable_on/tagging_spec.rb
@@ -207,10 +177,10 @@ files:
207
177
  - spec/internal/app/models/altered_inheriting_taggable_model.rb
208
178
  - spec/internal/app/models/cached_model.rb
209
179
  - spec/internal/app/models/cached_model_with_array.rb
180
+ - spec/internal/app/models/columns_override_model.rb
210
181
  - spec/internal/app/models/company.rb
211
182
  - spec/internal/app/models/inheriting_taggable_model.rb
212
183
  - spec/internal/app/models/market.rb
213
- - spec/internal/app/models/models.rb
214
184
  - spec/internal/app/models/non_standard_id_taggable_model.rb
215
185
  - spec/internal/app/models/ordered_taggable_model.rb
216
186
  - spec/internal/app/models/other_cached_model.rb
@@ -246,16 +216,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
246
216
  requirements:
247
217
  - - ">="
248
218
  - !ruby/object:Gem::Version
249
- version: 2.0.0
219
+ version: 2.3.7
250
220
  required_rubygems_version: !ruby/object:Gem::Requirement
251
221
  requirements:
252
- - - ">"
222
+ - - ">="
253
223
  - !ruby/object:Gem::Version
254
- version: 1.3.1
224
+ version: '0'
255
225
  requirements: []
256
- rubyforge_project:
257
- rubygems_version: 2.4.5.1
258
- signing_key:
226
+ rubygems_version: 3.0.3
227
+ signing_key:
259
228
  specification_version: 4
260
229
  summary: Advanced tagging for Rails.
261
230
  test_files:
@@ -263,12 +232,12 @@ test_files:
263
232
  - spec/acts_as_taggable_on/acts_as_tagger_spec.rb
264
233
  - spec/acts_as_taggable_on/caching_spec.rb
265
234
  - spec/acts_as_taggable_on/default_parser_spec.rb
235
+ - spec/acts_as_taggable_on/dirty_spec.rb
266
236
  - spec/acts_as_taggable_on/generic_parser_spec.rb
267
237
  - spec/acts_as_taggable_on/related_spec.rb
268
238
  - spec/acts_as_taggable_on/single_table_inheritance_spec.rb
269
239
  - spec/acts_as_taggable_on/tag_list_spec.rb
270
240
  - spec/acts_as_taggable_on/tag_spec.rb
271
- - spec/acts_as_taggable_on/taggable/dirty_spec.rb
272
241
  - spec/acts_as_taggable_on/taggable_spec.rb
273
242
  - spec/acts_as_taggable_on/tagger_spec.rb
274
243
  - spec/acts_as_taggable_on/tagging_spec.rb
@@ -277,10 +246,10 @@ test_files:
277
246
  - spec/internal/app/models/altered_inheriting_taggable_model.rb
278
247
  - spec/internal/app/models/cached_model.rb
279
248
  - spec/internal/app/models/cached_model_with_array.rb
249
+ - spec/internal/app/models/columns_override_model.rb
280
250
  - spec/internal/app/models/company.rb
281
251
  - spec/internal/app/models/inheriting_taggable_model.rb
282
252
  - spec/internal/app/models/market.rb
283
- - spec/internal/app/models/models.rb
284
253
  - spec/internal/app/models/non_standard_id_taggable_model.rb
285
254
  - spec/internal/app/models/ordered_taggable_model.rb
286
255
  - spec/internal/app/models/other_cached_model.rb
@@ -1,12 +0,0 @@
1
- class AddMissingIndexes < ActiveRecord::Migration
2
- def change
3
- add_index :taggings, :tag_id
4
- add_index :taggings, :taggable_id
5
- add_index :taggings, :taggable_type
6
- add_index :taggings, :tagger_id
7
- add_index :taggings, :context
8
-
9
- add_index :taggings, [:tagger_id, :tagger_type]
10
- add_index :taggings, [:taggable_id, :taggable_type, :tagger_id, :context], name: 'taggings_idy'
11
- end
12
- end
@@ -1,16 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 4.0.0"
6
- gem "mysql2", "~> 0.3.21"
7
-
8
- group :local_development do
9
- gem "guard"
10
- gem "guard-rspec"
11
- gem "appraisal"
12
- gem "rake"
13
- gem "byebug", :platforms => [:mri_21, :mri_22, :mri_23]
14
- end
15
-
16
- gemspec :path => "../"
@@ -1,16 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 4.1.0"
6
- gem "mysql2", "~> 0.3.21"
7
-
8
- group :local_development do
9
- gem "guard"
10
- gem "guard-rspec"
11
- gem "appraisal"
12
- gem "rake"
13
- gem "byebug", :platforms => [:mri_21, :mri_22, :mri_23]
14
- end
15
-
16
- gemspec :path => "../"
@@ -1,15 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 4.2.0"
6
-
7
- group :local_development do
8
- gem "guard"
9
- gem "guard-rspec"
10
- gem "appraisal"
11
- gem "rake"
12
- gem "byebug", :platforms => [:mri_21, :mri_22, :mri_23]
13
- end
14
-
15
- gemspec :path => "../"
@@ -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