acts-as-taggable-on 2.1.0 → 2.2.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 (33) hide show
  1. data/.gitignore +1 -0
  2. data/.travis.yml +1 -2
  3. data/CHANGELOG +10 -0
  4. data/README.rdoc +31 -63
  5. data/acts-as-taggable-on.gemspec +4 -3
  6. data/lib/acts-as-taggable-on/version.rb +1 -1
  7. data/lib/acts-as-taggable-on.rb +0 -4
  8. data/lib/acts_as_taggable_on/acts_as_taggable_on/cache.rb +1 -1
  9. data/lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb +1 -1
  10. data/lib/acts_as_taggable_on/acts_as_taggable_on/core.rb +29 -17
  11. data/lib/acts_as_taggable_on/acts_as_taggable_on/related.rb +15 -15
  12. data/lib/acts_as_taggable_on/acts_as_taggable_on.rb +4 -13
  13. data/lib/acts_as_taggable_on/tag.rb +12 -13
  14. data/lib/acts_as_taggable_on/tagging.rb +0 -2
  15. data/lib/acts_as_taggable_on/utils.rb +7 -8
  16. data/lib/generators/acts_as_taggable_on/migration/migration_generator.rb +9 -2
  17. data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +228 -61
  18. data/spec/acts_as_taggable_on/tag_list_spec.rb +4 -0
  19. data/spec/acts_as_taggable_on/tag_spec.rb +11 -15
  20. data/spec/acts_as_taggable_on/taggable_spec.rb +89 -27
  21. data/spec/acts_as_taggable_on/tagger_spec.rb +14 -0
  22. data/spec/acts_as_taggable_on/utils_spec.rb +2 -3
  23. data/spec/database.yml.sample +1 -1
  24. data/spec/generators/acts_as_taggable_on/migration/migration_generator_spec.rb +22 -0
  25. data/spec/models.rb +11 -2
  26. data/spec/schema.rb +7 -0
  27. data/spec/spec_helper.rb +1 -0
  28. metadata +95 -123
  29. data/VERSION +0 -1
  30. data/generators/acts_as_taggable_on_migration/acts_as_taggable_on_migration_generator.rb +0 -7
  31. data/generators/acts_as_taggable_on_migration/templates/migration.rb +0 -29
  32. data/lib/acts_as_taggable_on/compatibility/Gemfile +0 -8
  33. data/lib/acts_as_taggable_on/compatibility/active_record_backports.rb +0 -21
@@ -25,14 +25,19 @@ describe "Taggable" do
25
25
  @taggable.tag_counts_on(:tags).length.should == 2
26
26
  end
27
27
 
28
+ it "should return [] right after create" do
29
+ blank_taggable = TaggableModel.new(:name => "Bob Jones")
30
+ blank_taggable.tag_list.should == []
31
+ end
32
+
28
33
  it "should be able to create tags" do
29
34
  @taggable.skill_list = "ruby, rails, css"
30
35
  @taggable.instance_variable_get("@skill_list").instance_of?(ActsAsTaggableOn::TagList).should be_true
31
-
36
+
32
37
  lambda {
33
38
  @taggable.save
34
39
  }.should change(ActsAsTaggableOn::Tag, :count).by(3)
35
-
40
+
36
41
  @taggable.reload
37
42
  @taggable.skill_list.sort.should == %w(ruby rails css).sort
38
43
  end
@@ -41,10 +46,10 @@ describe "Taggable" do
41
46
  @taggable.tag_list_on(:test).add("hello")
42
47
  @taggable.tag_list_cache_on(:test).should_not be_empty
43
48
  @taggable.tag_list_on(:test).should == ["hello"]
44
-
49
+
45
50
  @taggable.save
46
51
  @taggable.save_tags
47
-
52
+
48
53
  @taggable.reload
49
54
  @taggable.tag_list_on(:test).should == ["hello"]
50
55
  end
@@ -75,7 +80,7 @@ describe "Taggable" do
75
80
  @taggables[0].skill_list = "ruby"
76
81
  @taggables[1].skill_list = "css"
77
82
  @taggables.each{|taggable| taggable.save}
78
-
83
+
79
84
  @found_taggables_by_tag = TaggableModel.joins(:tags).where(:tags => {:name => ["bob"]})
80
85
  @found_taggables_by_skill = TaggableModel.joins(:skills).where(:tags => {:name => ["ruby"]})
81
86
 
@@ -84,7 +89,7 @@ describe "Taggable" do
84
89
  @found_taggables_by_skill.should include @taggables[0]
85
90
  @found_taggables_by_skill.should_not include @taggables[1]
86
91
  end
87
-
92
+
88
93
  it "should be able to find by tag" do
89
94
  @taggable.skill_list = "ruby, rails, css"
90
95
  @taggable.save
@@ -136,7 +141,7 @@ describe "Taggable" do
136
141
  # Let's only find those who need rails or css and are offering c++ or java
137
142
  TaggableModel.tagged_with(['rails, css'], :on => :needs, :any => true).tagged_with(['c++', 'java'], :on => :offerings, :any => true).to_a.should == [bob]
138
143
  end
139
-
144
+
140
145
  if ActiveRecord::VERSION::MAJOR >= 3
141
146
  it "should not return read-only records" do
142
147
  TaggableModel.create(:name => "Bob", :tag_list => "ruby, rails, css")
@@ -146,10 +151,10 @@ describe "Taggable" do
146
151
  xit "should not return read-only records" do
147
152
  # apparantly, there is no way to set readonly to false in a scope if joins are made
148
153
  end
149
-
154
+
150
155
  it "should be possible to return writable records" do
151
156
  TaggableModel.create(:name => "Bob", :tag_list => "ruby, rails, css")
152
- TaggableModel.tagged_with("ruby").first(:readonly => false).should_not be_readonly
157
+ TaggableModel.tagged_with("ruby").first(:readonly => false).should_not be_readonly
153
158
  end
154
159
  end
155
160
 
@@ -174,10 +179,10 @@ describe "Taggable" do
174
179
  bob = TaggableModel.create(:name => "Bob", :tag_list => "ruby, rails, css")
175
180
  frank = TaggableModel.create(:name => "Frank", :tag_list => "ruby, rails")
176
181
  charlie = TaggableModel.create(:name => "Charlie", :skill_list => "ruby, java")
177
-
182
+
178
183
  TaggableModel.tagged_with('rails').all_tag_counts.should have(3).items
179
184
  TaggableModel.tagged_with('rails').all_tag_counts.any? { |tag| tag.name == 'java' }.should be_false
180
-
185
+
181
186
  # Test specific join syntaxes:
182
187
  frank.untaggable_models.create!
183
188
  TaggableModel.tagged_with('rails').scoped(:joins => :untaggable_models).all_tag_counts.should have(2).items
@@ -203,15 +208,15 @@ describe "Taggable" do
203
208
  TaggableModel.tagged_with("ruby, rails", :order => 'taggable_models.name').to_a.should == [bob, frank]
204
209
  TaggableModel.tagged_with(["ruby", "rails"], :order => 'taggable_models.name').to_a.should == [bob, frank]
205
210
  end
206
-
211
+
207
212
  it "should be able to find tagged with quotation marks" do
208
213
  bob = TaggableModel.create(:name => "Bob", :tag_list => "fitter, happier, more productive, 'I love the ,comma,'")
209
214
  TaggableModel.tagged_with("'I love the ,comma,'").should include(bob)
210
215
  end
211
-
216
+
212
217
  it "should be able to find tagged with invalid tags" do
213
- bob = TaggableModel.create(:name => "Bob", :tag_list => "fitter, happier, more productive")
214
- TaggableModel.tagged_with("sad, happier").should_not include(bob)
218
+ bob = TaggableModel.create(:name => "Bob", :tag_list => "fitter, happier, more productive")
219
+ TaggableModel.tagged_with("sad, happier").should_not include(bob)
215
220
  end
216
221
 
217
222
  it "should be able to find tagged with any tag" do
@@ -260,11 +265,12 @@ describe "Taggable" do
260
265
 
261
266
  TaggableModel.tagged_with("lazy", :exclude => true).to_a.should == [frank, steve]
262
267
  end
263
-
268
+
264
269
  it "should return an empty scope for empty tags" do
265
270
  TaggableModel.tagged_with('').should == []
266
271
  TaggableModel.tagged_with(' ').should == []
267
- TaggableModel.tagged_with(nil).should == []
272
+ TaggableModel.tagged_with(nil).should == []
273
+ TaggableModel.tagged_with([]).should == []
268
274
  end
269
275
 
270
276
  it "should not create duplicate taggings" do
@@ -275,12 +281,12 @@ describe "Taggable" do
275
281
  bob.save
276
282
  }.should change(ActsAsTaggableOn::Tagging, :count).by(1)
277
283
  end
278
-
284
+
279
285
  describe "Associations" do
280
286
  before(:each) do
281
287
  @taggable = TaggableModel.create(:tag_list => "awesome, epic")
282
288
  end
283
-
289
+
284
290
  it "should not remove tags when creating associated objects" do
285
291
  @taggable.untaggable_models.create!
286
292
  @taggable.reload
@@ -296,6 +302,10 @@ describe "Taggable" do
296
302
  it "should return all column names joined for TaggableModel GROUP clause" do
297
303
  @taggable.grouped_column_names_for(TaggableModel).should == "taggable_models.id, taggable_models.name, taggable_models.type"
298
304
  end
305
+
306
+ it "should return all column names joined for NonStandardIdTaggableModel GROUP clause" do
307
+ @taggable.grouped_column_names_for(TaggableModel).should == "taggable_models.#{TaggableModel.primary_key}, taggable_models.name, taggable_models.type"
308
+ end
299
309
  end
300
310
 
301
311
  describe "Single Table Inheritance" do
@@ -304,45 +314,97 @@ describe "Taggable" do
304
314
  @inherited_same = InheritingTaggableModel.new(:name => "inherited same")
305
315
  @inherited_different = AlteredInheritingTaggableModel.new(:name => "inherited different")
306
316
  end
307
-
317
+
308
318
  it "should be able to save tags for inherited models" do
309
319
  @inherited_same.tag_list = "bob, kelso"
310
320
  @inherited_same.save
311
321
  InheritingTaggableModel.tagged_with("bob").first.should == @inherited_same
312
322
  end
313
-
323
+
314
324
  it "should find STI tagged models on the superclass" do
315
325
  @inherited_same.tag_list = "bob, kelso"
316
326
  @inherited_same.save
317
327
  TaggableModel.tagged_with("bob").first.should == @inherited_same
318
328
  end
319
-
329
+
320
330
  it "should be able to add on contexts only to some subclasses" do
321
331
  @inherited_different.part_list = "fork, spoon"
322
332
  @inherited_different.save
323
333
  InheritingTaggableModel.tagged_with("fork", :on => :parts).should be_empty
324
334
  AlteredInheritingTaggableModel.tagged_with("fork", :on => :parts).first.should == @inherited_different
325
335
  end
326
-
336
+
327
337
  it "should have different tag_counts_on for inherited models" do
328
338
  @inherited_same.tag_list = "bob, kelso"
329
339
  @inherited_same.save!
330
340
  @inherited_different.tag_list = "fork, spoon"
331
341
  @inherited_different.save!
332
-
342
+
333
343
  InheritingTaggableModel.tag_counts_on(:tags, :order => 'tags.id').map(&:name).should == %w(bob kelso)
334
344
  AlteredInheritingTaggableModel.tag_counts_on(:tags, :order => 'tags.id').map(&:name).should == %w(fork spoon)
335
345
  TaggableModel.tag_counts_on(:tags, :order => 'tags.id').map(&:name).should == %w(bob kelso fork spoon)
336
346
  end
337
-
347
+
338
348
  it 'should store same tag without validation conflict' do
339
349
  @taggable.tag_list = 'one'
340
350
  @taggable.save!
341
-
351
+
342
352
  @inherited_same.tag_list = 'one'
343
353
  @inherited_same.save!
344
-
354
+
345
355
  @inherited_same.update_attributes! :name => 'foo'
346
356
  end
347
357
  end
358
+
359
+ describe "NonStandardIdTaggable" do
360
+ before(:each) do
361
+ clean_database!
362
+ @taggable = NonStandardIdTaggableModel.new(:name => "Bob Jones")
363
+ @taggables = [@taggable, NonStandardIdTaggableModel.new(:name => "John Doe")]
364
+ end
365
+
366
+ it "should have tag types" do
367
+ [:tags, :languages, :skills, :needs, :offerings].each do |type|
368
+ NonStandardIdTaggableModel.tag_types.should include type
369
+ end
370
+
371
+ @taggable.tag_types.should == NonStandardIdTaggableModel.tag_types
372
+ end
373
+
374
+ it "should have tag_counts_on" do
375
+ NonStandardIdTaggableModel.tag_counts_on(:tags).all.should be_empty
376
+
377
+ @taggable.tag_list = ["awesome", "epic"]
378
+ @taggable.save
379
+
380
+ NonStandardIdTaggableModel.tag_counts_on(:tags).length.should == 2
381
+ @taggable.tag_counts_on(:tags).length.should == 2
382
+ end
383
+
384
+ it "should be able to create tags" do
385
+ @taggable.skill_list = "ruby, rails, css"
386
+ @taggable.instance_variable_get("@skill_list").instance_of?(ActsAsTaggableOn::TagList).should be_true
387
+
388
+ lambda {
389
+ @taggable.save
390
+ }.should change(ActsAsTaggableOn::Tag, :count).by(3)
391
+
392
+ @taggable.reload
393
+ @taggable.skill_list.sort.should == %w(ruby rails css).sort
394
+ end
395
+
396
+ it "should be able to create tags through the tag list directly" do
397
+ @taggable.tag_list_on(:test).add("hello")
398
+ @taggable.tag_list_cache_on(:test).should_not be_empty
399
+ @taggable.tag_list_on(:test).should == ["hello"]
400
+
401
+ @taggable.save
402
+ @taggable.save_tags
403
+
404
+ @taggable.reload
405
+ @taggable.tag_list_on(:test).should == ["hello"]
406
+ end
407
+ end
348
408
  end
409
+
410
+
@@ -17,6 +17,20 @@ describe "Tagger" do
17
17
  @user.owned_tags.size == 2
18
18
  end
19
19
 
20
+ it "should scope objects returned by tagged_with by owners" do
21
+ @taggable2 = TaggableModel.create(:name => "Jim Jones")
22
+ @taggable3 = TaggableModel.create(:name => "Jane Doe")
23
+
24
+ @user2 = TaggableUser.new
25
+ @user.tag(@taggable, :with => 'ruby, scheme', :on => :tags)
26
+ @user2.tag(@taggable2, :with => 'ruby, scheme', :on => :tags)
27
+ @user2.tag(@taggable3, :with => 'ruby, scheme', :on => :tags)
28
+
29
+ TaggableModel.tagged_with(%w(ruby scheme), :owned_by => @user).count.should == 1
30
+ TaggableModel.tagged_with(%w(ruby scheme), :owned_by => @user2).count.should == 2
31
+
32
+ end
33
+
20
34
  it "should not overlap tags from different taggers" do
21
35
  @user2 = TaggableUser.new
22
36
  lambda{
@@ -4,16 +4,15 @@ describe ActsAsTaggableOn::Utils do
4
4
  describe "like_operator" do
5
5
  before(:each) do
6
6
  clean_database!
7
- TaggableModel.write_inheritable_attribute(:tag_types, [])
8
7
  TaggableModel.acts_as_taggable_on(:tags, :languages, :skills, :needs, :offerings)
9
8
  @taggable = TaggableModel.new(:name => "Bob Jones")
10
9
  end
11
-
10
+
12
11
  it "should return 'ILIKE' when the adapter is PostgreSQL" do
13
12
  TaggableModel.connection.stub(:adapter_name).and_return("PostgreSQL")
14
13
  TaggableModel.send(:like_operator).should == "ILIKE"
15
14
  end
16
-
15
+
17
16
  it "should return 'LIKE' when the adapter is not PostgreSQL" do
18
17
  TaggableModel.connection.stub(:adapter_name).and_return("MySQL")
19
18
  TaggableModel.send(:like_operator).should == "LIKE"
@@ -16,4 +16,4 @@ postgresql:
16
16
  username: postgres
17
17
  password:
18
18
  database: acts_as_taggable_on
19
- encoding: utf8
19
+ encoding: utf8
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ # Generators are not automatically loaded by Rails
4
+ require 'generators/acts_as_taggable_on/migration/migration_generator'
5
+
6
+ describe ActsAsTaggableOn::MigrationGenerator do
7
+ # Tell the generator where to put its output (what it thinks of as Rails.root)
8
+ destination File.expand_path("../../../../../tmp", __FILE__)
9
+
10
+ before do
11
+ prepare_destination
12
+ Rails::Generators.options[:rails][:orm] = :active_record
13
+ end
14
+ describe 'no arguments' do
15
+ before { run_generator }
16
+
17
+ describe 'db/migrate/acts_as_taggable_on_migration.rb' do
18
+ subject { file('db/migrate/acts_as_taggable_on_migration.rb') }
19
+ it { should be_a_migration }
20
+ end
21
+ end
22
+ end
data/spec/models.rb CHANGED
@@ -11,7 +11,7 @@ class CachedModel < ActiveRecord::Base
11
11
  end
12
12
 
13
13
  class OtherCachedModel < ActiveRecord::Base
14
- acts_as_taggable_on :languages
14
+ acts_as_taggable_on :languages, :statuses, :glasses
15
15
  end
16
16
 
17
17
  class OtherTaggableModel < ActiveRecord::Base
@@ -32,4 +32,13 @@ end
32
32
 
33
33
  class UntaggableModel < ActiveRecord::Base
34
34
  belongs_to :taggable_model
35
- end
35
+ end
36
+
37
+ class NonStandardIdTaggableModel < ActiveRecord::Base
38
+ set_primary_key "an_id"
39
+ acts_as_taggable
40
+ acts_as_taggable_on :languages
41
+ acts_as_taggable_on :skills
42
+ acts_as_taggable_on :needs, :offerings
43
+ has_many :untaggable_models
44
+ end
data/spec/schema.rb CHANGED
@@ -21,6 +21,11 @@ ActiveRecord::Schema.define :version => 0 do
21
21
  t.column :type, :string
22
22
  end
23
23
 
24
+ create_table :non_standard_id_taggable_models, :primary_key => "an_id", :force => true do |t|
25
+ t.column :name, :string
26
+ t.column :type, :string
27
+ end
28
+
24
29
  create_table :untaggable_models, :force => true do |t|
25
30
  t.column :taggable_model_id, :integer
26
31
  t.column :name, :string
@@ -36,6 +41,8 @@ ActiveRecord::Schema.define :version => 0 do
36
41
  t.column :name, :string
37
42
  t.column :type, :string
38
43
  t.column :cached_language_list, :string
44
+ t.column :cached_status_list, :string
45
+ t.column :cached_glass_list, :string
39
46
  end
40
47
 
41
48
  create_table :taggable_users, :force => true do |t|
data/spec/spec_helper.rb CHANGED
@@ -19,6 +19,7 @@ end
19
19
 
20
20
  Bundler.require
21
21
  require File.expand_path('../../lib/acts-as-taggable-on', __FILE__)
22
+ require 'ammeter/init'
22
23
 
23
24
  unless [].respond_to?(:freq)
24
25
  class Array
metadata CHANGED
@@ -1,132 +1,111 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: acts-as-taggable-on
3
- version: !ruby/object:Gem::Version
4
- hash: 11
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.2.0
5
5
  prerelease:
6
- segments:
7
- - 2
8
- - 1
9
- - 0
10
- version: 2.1.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Michael Bleigh
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2010-05-19 00:00:00 +03:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- requirement: &id001 !ruby/object:Gem::Requirement
23
- none: false
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- hash: 3
28
- segments:
29
- - 0
30
- version: "0"
31
- prerelease: false
12
+ date: 2011-12-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
32
15
  name: rails
33
- type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- requirement: &id002 !ruby/object:Gem::Requirement
16
+ requirement: &2153284680 !ruby/object:Gem::Requirement
37
17
  none: false
38
- requirements:
18
+ requirements:
39
19
  - - ~>
40
- - !ruby/object:Gem::Version
41
- hash: 9
42
- segments:
43
- - 2
44
- - 5
45
- version: "2.5"
20
+ - !ruby/object:Gem::Version
21
+ version: '3.1'
22
+ type: :runtime
46
23
  prerelease: false
24
+ version_requirements: *2153284680
25
+ - !ruby/object:Gem::Dependency
47
26
  name: rspec
27
+ requirement: &2153284100 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '2.5'
48
33
  type: :development
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- requirement: &id003 !ruby/object:Gem::Requirement
34
+ prerelease: false
35
+ version_requirements: *2153284100
36
+ - !ruby/object:Gem::Dependency
37
+ name: ammeter
38
+ requirement: &2153283600 !ruby/object:Gem::Requirement
52
39
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 0.1.3
44
+ type: :development
60
45
  prerelease: false
46
+ version_requirements: *2153283600
47
+ - !ruby/object:Gem::Dependency
61
48
  name: sqlite3
62
- type: :development
63
- version_requirements: *id003
64
- - !ruby/object:Gem::Dependency
65
- requirement: &id004 !ruby/object:Gem::Requirement
49
+ requirement: &2153283220 !ruby/object:Gem::Requirement
66
50
  none: false
67
- requirements:
68
- - - <
69
- - !ruby/object:Gem::Version
70
- hash: 13
71
- segments:
72
- - 0
73
- - 3
74
- version: "0.3"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
75
56
  prerelease: false
57
+ version_requirements: *2153283220
58
+ - !ruby/object:Gem::Dependency
76
59
  name: mysql2
77
- type: :development
78
- version_requirements: *id004
79
- - !ruby/object:Gem::Dependency
80
- requirement: &id005 !ruby/object:Gem::Requirement
60
+ requirement: &2153282280 !ruby/object:Gem::Requirement
81
61
  none: false
82
- requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- hash: 3
86
- segments:
87
- - 0
88
- version: "0"
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 0.3.7
66
+ type: :development
89
67
  prerelease: false
68
+ version_requirements: *2153282280
69
+ - !ruby/object:Gem::Dependency
90
70
  name: pg
91
- type: :development
92
- version_requirements: *id005
93
- - !ruby/object:Gem::Dependency
94
- requirement: &id006 !ruby/object:Gem::Requirement
71
+ requirement: &2153281780 !ruby/object:Gem::Requirement
95
72
  none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- hash: 3
100
- segments:
101
- - 0
102
- version: "0"
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
103
78
  prerelease: false
79
+ version_requirements: *2153281780
80
+ - !ruby/object:Gem::Dependency
104
81
  name: guard
105
- type: :development
106
- version_requirements: *id006
107
- - !ruby/object:Gem::Dependency
108
- requirement: &id007 !ruby/object:Gem::Requirement
82
+ requirement: &2153281300 !ruby/object:Gem::Requirement
109
83
  none: false
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- hash: 3
114
- segments:
115
- - 0
116
- version: "0"
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
117
89
  prerelease: false
90
+ version_requirements: *2153281300
91
+ - !ruby/object:Gem::Dependency
118
92
  name: guard-rspec
93
+ requirement: &2153280680 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
119
99
  type: :development
120
- version_requirements: *id007
121
- description: With ActsAsTaggableOn, you can tag a single model on several contexts, such as skills, interests, and awards. It also provides other advanced functionality.
100
+ prerelease: false
101
+ version_requirements: *2153280680
102
+ description: With ActsAsTaggableOn, you can tag a single model on several contexts,
103
+ such as skills, interests, and awards. It also provides other advanced functionality.
122
104
  email: michael@intridea.com
123
105
  executables: []
124
-
125
106
  extensions: []
126
-
127
107
  extra_rdoc_files: []
128
-
129
- files:
108
+ files:
130
109
  - .gitignore
131
110
  - .rspec
132
111
  - .travis.yml
@@ -136,10 +115,7 @@ files:
136
115
  - MIT-LICENSE
137
116
  - README.rdoc
138
117
  - Rakefile
139
- - VERSION
140
118
  - acts-as-taggable-on.gemspec
141
- - generators/acts_as_taggable_on_migration/acts_as_taggable_on_migration_generator.rb
142
- - generators/acts_as_taggable_on_migration/templates/migration.rb
143
119
  - lib/acts-as-taggable-on.rb
144
120
  - lib/acts-as-taggable-on/version.rb
145
121
  - lib/acts_as_taggable_on/acts_as_taggable_on.rb
@@ -149,8 +125,6 @@ files:
149
125
  - lib/acts_as_taggable_on/acts_as_taggable_on/ownership.rb
150
126
  - lib/acts_as_taggable_on/acts_as_taggable_on/related.rb
151
127
  - lib/acts_as_taggable_on/acts_as_tagger.rb
152
- - lib/acts_as_taggable_on/compatibility/Gemfile
153
- - lib/acts_as_taggable_on/compatibility/active_record_backports.rb
154
128
  - lib/acts_as_taggable_on/tag.rb
155
129
  - lib/acts_as_taggable_on/tag_list.rb
156
130
  - lib/acts_as_taggable_on/tagging.rb
@@ -170,45 +144,42 @@ files:
170
144
  - spec/acts_as_taggable_on/utils_spec.rb
171
145
  - spec/bm.rb
172
146
  - spec/database.yml.sample
147
+ - spec/generators/acts_as_taggable_on/migration/migration_generator_spec.rb
173
148
  - spec/models.rb
174
149
  - spec/schema.rb
175
150
  - spec/spec_helper.rb
176
151
  - uninstall.rb
177
- has_rdoc: true
178
- homepage: ""
152
+ homepage: ''
179
153
  licenses: []
180
-
181
154
  post_install_message:
182
155
  rdoc_options: []
183
-
184
- require_paths:
156
+ require_paths:
185
157
  - lib
186
- required_ruby_version: !ruby/object:Gem::Requirement
158
+ required_ruby_version: !ruby/object:Gem::Requirement
187
159
  none: false
188
- requirements:
189
- - - ">="
190
- - !ruby/object:Gem::Version
191
- hash: 3
192
- segments:
160
+ requirements:
161
+ - - ! '>='
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
164
+ segments:
193
165
  - 0
194
- version: "0"
195
- required_rubygems_version: !ruby/object:Gem::Requirement
166
+ hash: 2237132345428656164
167
+ required_rubygems_version: !ruby/object:Gem::Requirement
196
168
  none: false
197
- requirements:
198
- - - ">="
199
- - !ruby/object:Gem::Version
200
- hash: 3
201
- segments:
169
+ requirements:
170
+ - - ! '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ segments:
202
174
  - 0
203
- version: "0"
175
+ hash: 2237132345428656164
204
176
  requirements: []
205
-
206
177
  rubyforge_project:
207
- rubygems_version: 1.5.2
178
+ rubygems_version: 1.8.11
208
179
  signing_key:
209
180
  specification_version: 3
210
181
  summary: Advanced tagging for Rails.
211
- test_files:
182
+ test_files:
212
183
  - spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb
213
184
  - spec/acts_as_taggable_on/acts_as_tagger_spec.rb
214
185
  - spec/acts_as_taggable_on/tag_list_spec.rb
@@ -220,6 +191,7 @@ test_files:
220
191
  - spec/acts_as_taggable_on/utils_spec.rb
221
192
  - spec/bm.rb
222
193
  - spec/database.yml.sample
194
+ - spec/generators/acts_as_taggable_on/migration/migration_generator_spec.rb
223
195
  - spec/models.rb
224
196
  - spec/schema.rb
225
197
  - spec/spec_helper.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 2.0.6