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.
- checksums.yaml +5 -5
- data/.gitignore +1 -1
- data/.travis.yml +28 -15
- data/Appraisals +12 -10
- data/CHANGELOG.md +200 -71
- data/CONTRIBUTING.md +13 -0
- data/Gemfile +1 -1
- data/README.md +68 -28
- data/acts-as-taggable-on.gemspec +2 -6
- data/db/migrate/1_acts_as_taggable_on_migration.rb +14 -8
- data/db/migrate/2_add_missing_unique_indices.rb +14 -9
- data/db/migrate/3_add_taggings_counter_cache_to_tags.rb +9 -4
- data/db/migrate/4_add_missing_taggable_index.rb +8 -3
- data/db/migrate/5_change_collation_for_tag_names.rb +7 -2
- data/db/migrate/6_add_missing_indexes_on_taggings.rb +22 -0
- data/gemfiles/activerecord_5.0.gemfile +11 -5
- data/gemfiles/activerecord_5.1.gemfile +21 -0
- data/gemfiles/activerecord_5.2.gemfile +21 -0
- 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 +17 -23
- data/lib/acts_as_taggable_on/tag_list.rb +1 -0
- data/lib/acts_as_taggable_on/taggable.rb +0 -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 +41 -181
- data/lib/acts_as_taggable_on/taggable/ownership.rb +16 -5
- 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.rb +16 -0
- data/lib/acts_as_taggable_on/taggable/tagged_with_query/all_tags_query.rb +111 -0
- data/lib/acts_as_taggable_on/taggable/tagged_with_query/any_tags_query.rb +70 -0
- data/lib/acts_as_taggable_on/taggable/tagged_with_query/exclude_tags_query.rb +82 -0
- data/lib/acts_as_taggable_on/taggable/tagged_with_query/query_base.rb +61 -0
- data/lib/acts_as_taggable_on/tagger.rb +3 -3
- data/lib/acts_as_taggable_on/tagging.rb +6 -3
- 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 +34 -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 +28 -8
- data/spec/acts_as_taggable_on/taggable_spec.rb +16 -13
- data/spec/acts_as_taggable_on/tagger_spec.rb +2 -2
- 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 +1 -0
- data/spec/internal/app/models/user.rb +1 -1
- data/spec/internal/db/schema.rb +14 -5
- data/spec/spec_helper.rb +0 -1
- data/spec/support/database.rb +4 -4
- metadata +30 -61
- data/db/migrate/6_add_missing_indexes.rb +0 -12
- data/gemfiles/activerecord_4.0.gemfile +0 -16
- data/gemfiles/activerecord_4.1.gemfile +0 -16
- data/gemfiles/activerecord_4.2.gemfile +0 -15
- data/lib/acts_as_taggable_on/taggable/dirty.rb +0 -36
- data/spec/internal/app/models/models.rb +0 -90
@@ -1,2 +1,2 @@
|
|
1
1
|
class Market < ActsAsTaggableOn::Tag
|
2
|
-
end
|
2
|
+
end
|
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
|
@@ -23,10 +23,10 @@ ActiveRecord::Schema.define version: 0 do
|
|
23
23
|
|
24
24
|
t.datetime :created_at
|
25
25
|
end
|
26
|
-
add_index
|
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
|
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?
|
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,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
|
+
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:
|
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: '
|
21
|
-
|
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: '
|
49
|
-
type: :
|
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
|
-
|
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: '
|
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/
|
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.
|
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:
|
224
|
+
version: '0'
|
255
225
|
requirements: []
|
256
|
-
|
257
|
-
|
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
|