acts-as-taggable-on 3.2.1 → 3.4.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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +21 -1
  3. data/Appraisals +8 -6
  4. data/CHANGELOG.md +99 -10
  5. data/README.md +78 -11
  6. data/acts-as-taggable-on.gemspec +2 -4
  7. data/db/migrate/4_add_missing_taggable_index.rb +9 -0
  8. data/gemfiles/activerecord_3.2.gemfile +0 -1
  9. data/gemfiles/activerecord_4.0.gemfile +1 -2
  10. data/gemfiles/activerecord_4.1.gemfile +1 -2
  11. data/gemfiles/activerecord_4.2.gemfile +16 -0
  12. data/gemfiles/activerecord_edge.gemfile +0 -1
  13. data/lib/acts-as-taggable-on.rb +40 -21
  14. data/lib/acts_as_taggable_on/default_parser.rb +79 -0
  15. data/lib/acts_as_taggable_on/generic_parser.rb +19 -0
  16. data/lib/acts_as_taggable_on/tag.rb +6 -1
  17. data/lib/acts_as_taggable_on/tag_list.rb +20 -79
  18. data/lib/acts_as_taggable_on/tag_list_parser.rb +21 -0
  19. data/lib/acts_as_taggable_on/{acts_as_taggable_on → taggable}/cache.rb +1 -0
  20. data/lib/acts_as_taggable_on/{acts_as_taggable_on → taggable}/collection.rb +3 -1
  21. data/lib/acts_as_taggable_on/{acts_as_taggable_on → taggable}/core.rb +87 -51
  22. data/lib/acts_as_taggable_on/{acts_as_taggable_on → taggable}/ownership.rb +1 -1
  23. data/lib/acts_as_taggable_on/{acts_as_taggable_on → taggable}/related.rb +6 -6
  24. data/lib/acts_as_taggable_on/taggable.rb +7 -8
  25. data/lib/acts_as_taggable_on/tagging.rb +7 -1
  26. data/lib/acts_as_taggable_on/tags_helper.rb +2 -2
  27. data/lib/acts_as_taggable_on/utils.rb +26 -50
  28. data/lib/acts_as_taggable_on/version.rb +1 -1
  29. data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +1 -1
  30. data/spec/acts_as_taggable_on/acts_as_tagger_spec.rb +1 -0
  31. data/spec/acts_as_taggable_on/caching_spec.rb +1 -0
  32. data/spec/acts_as_taggable_on/default_parser_spec.rb +47 -0
  33. data/spec/acts_as_taggable_on/generic_parser_spec.rb +14 -0
  34. data/spec/acts_as_taggable_on/related_spec.rb +1 -0
  35. data/spec/acts_as_taggable_on/single_table_inheritance_spec.rb +1 -0
  36. data/spec/acts_as_taggable_on/tag_list_parser_spec.rb +46 -0
  37. data/spec/acts_as_taggable_on/tag_list_spec.rb +23 -31
  38. data/spec/acts_as_taggable_on/tag_spec.rb +54 -38
  39. data/spec/acts_as_taggable_on/taggable/dirty_spec.rb +127 -0
  40. data/spec/acts_as_taggable_on/taggable_spec.rb +84 -164
  41. data/spec/acts_as_taggable_on/tagger_spec.rb +1 -1
  42. data/spec/acts_as_taggable_on/tagging_spec.rb +37 -1
  43. data/spec/acts_as_taggable_on/tags_helper_spec.rb +1 -0
  44. data/spec/acts_as_taggable_on/utils_spec.rb +6 -11
  45. data/spec/internal/app/models/cached_model_with_array.rb +1 -1
  46. data/spec/internal/app/models/models.rb +2 -2
  47. data/spec/internal/db/schema.rb +2 -2
  48. data/spec/spec_helper.rb +0 -1
  49. data/spec/support/0-helpers.rb +32 -0
  50. data/spec/support/database_cleaner.rb +4 -0
  51. metadata +29 -52
  52. data/spec/bm.rb +0 -52
  53. data/spec/schema.rb +0 -82
  54. /data/lib/acts_as_taggable_on/{acts_as_taggable_on/compatibility.rb → compatibility.rb} +0 -0
  55. /data/lib/acts_as_taggable_on/{acts_as_taggable_on → taggable}/dirty.rb +0 -0
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: 3.2.1
4
+ version: 3.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Bleigh
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-06 00:00:00.000000000 Z
12
+ date: 2014-08-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -17,7 +17,7 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '3'
20
+ version: '3.2'
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
23
  version: '5'
@@ -27,27 +27,7 @@ dependencies:
27
27
  requirements:
28
28
  - - ">="
29
29
  - !ruby/object:Gem::Version
30
- version: '3'
31
- - - "<"
32
- - !ruby/object:Gem::Version
33
- version: '5'
34
- - !ruby/object:Gem::Dependency
35
- name: actionpack
36
- requirement: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '3'
41
- - - "<"
42
- - !ruby/object:Gem::Version
43
- version: '5'
44
- type: :runtime
45
- prerelease: false
46
- version_requirements: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: '3'
30
+ version: '3.2'
51
31
  - - "<"
52
32
  - !ruby/object:Gem::Version
53
33
  version: '5'
@@ -95,20 +75,6 @@ dependencies:
95
75
  version: '0'
96
76
  - !ruby/object:Gem::Dependency
97
77
  name: rspec-rails
98
- requirement: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: 3.0.0.beta
103
- type: :development
104
- prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: 3.0.0.beta
110
- - !ruby/object:Gem::Dependency
111
- name: rspec-its
112
78
  requirement: !ruby/object:Gem::Requirement
113
79
  requirements:
114
80
  - - ">="
@@ -122,7 +88,7 @@ dependencies:
122
88
  - !ruby/object:Gem::Version
123
89
  version: '0'
124
90
  - !ruby/object:Gem::Dependency
125
- name: rspec
91
+ name: rspec-its
126
92
  requirement: !ruby/object:Gem::Requirement
127
93
  requirements:
128
94
  - - ">="
@@ -136,7 +102,7 @@ dependencies:
136
102
  - !ruby/object:Gem::Version
137
103
  version: '0'
138
104
  - !ruby/object:Gem::Dependency
139
- name: ammeter
105
+ name: rspec
140
106
  requirement: !ruby/object:Gem::Requirement
141
107
  requirements:
142
108
  - - ">="
@@ -202,23 +168,28 @@ files:
202
168
  - db/migrate/1_acts_as_taggable_on_migration.rb
203
169
  - db/migrate/2_add_missing_unique_indices.rb
204
170
  - db/migrate/3_add_taggings_counter_cache_to_tags.rb
171
+ - db/migrate/4_add_missing_taggable_index.rb
205
172
  - gemfiles/activerecord_3.2.gemfile
206
173
  - gemfiles/activerecord_4.0.gemfile
207
174
  - gemfiles/activerecord_4.1.gemfile
175
+ - gemfiles/activerecord_4.2.gemfile
208
176
  - gemfiles/activerecord_edge.gemfile
209
177
  - lib/acts-as-taggable-on.rb
210
178
  - lib/acts_as_taggable_on.rb
211
- - lib/acts_as_taggable_on/acts_as_taggable_on/cache.rb
212
- - lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb
213
- - lib/acts_as_taggable_on/acts_as_taggable_on/compatibility.rb
214
- - lib/acts_as_taggable_on/acts_as_taggable_on/core.rb
215
- - lib/acts_as_taggable_on/acts_as_taggable_on/dirty.rb
216
- - lib/acts_as_taggable_on/acts_as_taggable_on/ownership.rb
217
- - lib/acts_as_taggable_on/acts_as_taggable_on/related.rb
179
+ - lib/acts_as_taggable_on/compatibility.rb
180
+ - lib/acts_as_taggable_on/default_parser.rb
218
181
  - lib/acts_as_taggable_on/engine.rb
182
+ - lib/acts_as_taggable_on/generic_parser.rb
219
183
  - lib/acts_as_taggable_on/tag.rb
220
184
  - lib/acts_as_taggable_on/tag_list.rb
185
+ - lib/acts_as_taggable_on/tag_list_parser.rb
221
186
  - lib/acts_as_taggable_on/taggable.rb
187
+ - lib/acts_as_taggable_on/taggable/cache.rb
188
+ - lib/acts_as_taggable_on/taggable/collection.rb
189
+ - lib/acts_as_taggable_on/taggable/core.rb
190
+ - lib/acts_as_taggable_on/taggable/dirty.rb
191
+ - lib/acts_as_taggable_on/taggable/ownership.rb
192
+ - lib/acts_as_taggable_on/taggable/related.rb
222
193
  - lib/acts_as_taggable_on/tagger.rb
223
194
  - lib/acts_as_taggable_on/tagging.rb
224
195
  - lib/acts_as_taggable_on/tags_helper.rb
@@ -227,16 +198,19 @@ files:
227
198
  - spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb
228
199
  - spec/acts_as_taggable_on/acts_as_tagger_spec.rb
229
200
  - spec/acts_as_taggable_on/caching_spec.rb
201
+ - spec/acts_as_taggable_on/default_parser_spec.rb
202
+ - spec/acts_as_taggable_on/generic_parser_spec.rb
230
203
  - spec/acts_as_taggable_on/related_spec.rb
231
204
  - spec/acts_as_taggable_on/single_table_inheritance_spec.rb
205
+ - spec/acts_as_taggable_on/tag_list_parser_spec.rb
232
206
  - spec/acts_as_taggable_on/tag_list_spec.rb
233
207
  - spec/acts_as_taggable_on/tag_spec.rb
208
+ - spec/acts_as_taggable_on/taggable/dirty_spec.rb
234
209
  - spec/acts_as_taggable_on/taggable_spec.rb
235
210
  - spec/acts_as_taggable_on/tagger_spec.rb
236
211
  - spec/acts_as_taggable_on/tagging_spec.rb
237
212
  - spec/acts_as_taggable_on/tags_helper_spec.rb
238
213
  - spec/acts_as_taggable_on/utils_spec.rb
239
- - spec/bm.rb
240
214
  - spec/internal/app/models/altered_inheriting_taggable_model.rb
241
215
  - spec/internal/app/models/cached_model.rb
242
216
  - spec/internal/app/models/cached_model_with_array.rb
@@ -254,8 +228,8 @@ files:
254
228
  - spec/internal/app/models/user.rb
255
229
  - spec/internal/config/database.yml.sample
256
230
  - spec/internal/db/schema.rb
257
- - spec/schema.rb
258
231
  - spec/spec_helper.rb
232
+ - spec/support/0-helpers.rb
259
233
  - spec/support/array.rb
260
234
  - spec/support/database.rb
261
235
  - spec/support/database_cleaner.rb
@@ -292,7 +266,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
292
266
  version: '0'
293
267
  requirements: []
294
268
  rubyforge_project:
295
- rubygems_version: 2.2.2
269
+ rubygems_version: 2.4.1
296
270
  signing_key:
297
271
  specification_version: 4
298
272
  summary: Advanced tagging for Rails.
@@ -300,16 +274,19 @@ test_files:
300
274
  - spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb
301
275
  - spec/acts_as_taggable_on/acts_as_tagger_spec.rb
302
276
  - spec/acts_as_taggable_on/caching_spec.rb
277
+ - spec/acts_as_taggable_on/default_parser_spec.rb
278
+ - spec/acts_as_taggable_on/generic_parser_spec.rb
303
279
  - spec/acts_as_taggable_on/related_spec.rb
304
280
  - spec/acts_as_taggable_on/single_table_inheritance_spec.rb
281
+ - spec/acts_as_taggable_on/tag_list_parser_spec.rb
305
282
  - spec/acts_as_taggable_on/tag_list_spec.rb
306
283
  - spec/acts_as_taggable_on/tag_spec.rb
284
+ - spec/acts_as_taggable_on/taggable/dirty_spec.rb
307
285
  - spec/acts_as_taggable_on/taggable_spec.rb
308
286
  - spec/acts_as_taggable_on/tagger_spec.rb
309
287
  - spec/acts_as_taggable_on/tagging_spec.rb
310
288
  - spec/acts_as_taggable_on/tags_helper_spec.rb
311
289
  - spec/acts_as_taggable_on/utils_spec.rb
312
- - spec/bm.rb
313
290
  - spec/internal/app/models/altered_inheriting_taggable_model.rb
314
291
  - spec/internal/app/models/cached_model.rb
315
292
  - spec/internal/app/models/cached_model_with_array.rb
@@ -327,8 +304,8 @@ test_files:
327
304
  - spec/internal/app/models/user.rb
328
305
  - spec/internal/config/database.yml.sample
329
306
  - spec/internal/db/schema.rb
330
- - spec/schema.rb
331
307
  - spec/spec_helper.rb
308
+ - spec/support/0-helpers.rb
332
309
  - spec/support/array.rb
333
310
  - spec/support/database.rb
334
311
  - spec/support/database_cleaner.rb
data/spec/bm.rb DELETED
@@ -1,52 +0,0 @@
1
- require 'active_record'
2
- require 'action_view'
3
- require File.expand_path('../../lib/acts-as-taggable-on', __FILE__)
4
-
5
- if defined?(ActiveRecord::Acts::TaggableOn)
6
- ActiveRecord::Base.send :include, ActiveRecord::Acts::TaggableOn
7
- ActiveRecord::Base.send :include, ActiveRecord::Acts::Tagger
8
- ActionView::Base.send :include, TagsHelper if defined?(ActionView::Base)
9
- end
10
-
11
- TEST_DATABASE_FILE = File.join(File.dirname(__FILE__), '..', 'test.sqlite3')
12
- File.unlink(TEST_DATABASE_FILE) if File.exist?(TEST_DATABASE_FILE)
13
- ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => TEST_DATABASE_FILE
14
-
15
- ActiveRecord::Base.silence do
16
- ActiveRecord::Migration.verbose = false
17
- ActiveRecord::Schema.define :version => 0 do
18
- create_table "taggings", :force => true do |t|
19
- t.integer "tag_id", :limit => 11
20
- t.integer "taggable_id", :limit => 11
21
- t.string "taggable_type"
22
- t.string "context"
23
- t.datetime "created_at"
24
- t.integer "tagger_id", :limit => 11
25
- t.string "tagger_type"
26
- end
27
-
28
- add_index "taggings", ["tag_id"], :name => "index_taggings_on_tag_id"
29
- add_index "taggings", ["taggable_id", "taggable_type", "context"], :name => "index_taggings_on_taggable_id_and_taggable_type_and_context"
30
-
31
- create_table "tags", :force => true do |t|
32
- t.string "name"
33
- end
34
-
35
- create_table :taggable_models, :force => true do |t|
36
- t.column :name, :string
37
- t.column :type, :string
38
- t.column :cached_tag_list, :string
39
- end
40
- end
41
-
42
- class TaggableModel < ActiveRecord::Base
43
- acts_as_taggable
44
- acts_as_taggable_on :languages
45
- acts_as_taggable_on :skills
46
- acts_as_taggable_on :needs, :offerings
47
- end
48
- end
49
-
50
- puts Benchmark.measure {
51
- 1000.times { TaggableModel.create :tag_list => "awesome, epic, neat" }
52
- }
data/spec/schema.rb DELETED
@@ -1,82 +0,0 @@
1
- ActiveRecord::Schema.define :version => 0 do
2
- create_table :tags, :force => true do |t|
3
- t.string :name
4
- t.integer :taggings_count, :default => 0
5
- end
6
- add_index "tags", ["name"], name: "index_tags_on_name", unique: true
7
-
8
- create_table :taggings, :force => true do |t|
9
- t.references :tag
10
-
11
- # You should make sure that the column created is
12
- # long enough to store the required class names.
13
- t.references :taggable, :polymorphic => true
14
- t.references :tagger, :polymorphic => true
15
-
16
- # Limit is created to prevent MySQL error on index
17
- # length for MyISAM table type: http://bit.ly/vgW2Ql
18
- t.string :context, :limit => 128
19
-
20
- t.datetime :created_at
21
- end
22
- add_index "taggings",
23
- ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"],
24
- unique: true, name: "taggings_idx"
25
-
26
- # above copied from
27
- # generators/acts_as_taggable_on/migration/migration_generator
28
-
29
- create_table :taggable_models, :force => true do |t|
30
- t.column :name, :string
31
- t.column :type, :string
32
- end
33
-
34
- create_table :non_standard_id_taggable_models, :primary_key => "an_id", :force => true do |t|
35
- t.column :name, :string
36
- t.column :type, :string
37
- end
38
-
39
- create_table :untaggable_models, :force => true do |t|
40
- t.column :taggable_model_id, :integer
41
- t.column :name, :string
42
- end
43
-
44
- create_table :cached_models, :force => true do |t|
45
- t.column :name, :string
46
- t.column :type, :string
47
- t.column :cached_tag_list, :string
48
- end
49
-
50
- create_table :other_cached_models, :force => true do |t|
51
- t.column :name, :string
52
- t.column :type, :string
53
- t.column :cached_language_list, :string
54
- t.column :cached_status_list, :string
55
- t.column :cached_glass_list, :string
56
- end
57
-
58
- create_table :users, :force => true do |t|
59
- t.column :name, :string
60
- end
61
-
62
- create_table :other_taggable_models, :force => true do |t|
63
- t.column :name, :string
64
- t.column :type, :string
65
- end
66
-
67
- create_table :ordered_taggable_models, :force => true do |t|
68
- t.column :name, :string
69
- t.column :type, :string
70
- end
71
-
72
- create_table :taggable_model_with_jsons, :force => true do |t|
73
- t.column :name, :string
74
- t.column :type, :string
75
- if self.connection.adapter_name == 'PostgreSQL' && self.connection.execute("SHOW SERVER_VERSION").first["server_version"].to_f >= 9.2
76
- type = :json
77
- else
78
- type = :string
79
- end
80
- t.column :opts, type
81
- end
82
- end