acts-as-taggable-on 1.1.6 → 1.1.7

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.
@@ -31,6 +31,16 @@ To install the gem, add this to your config/environment.rb:
31
31
 
32
32
  After that, you can run "rake gems:install" to install the gem if you don't already have it.
33
33
 
34
+ == Rails 3.0
35
+
36
+ Acts As Taggable On is now useable in Rails 3.0, thanks to the excellent work of Szymon Nowak
37
+ and Jelle Vandebeeck. Because backwards compatibility is hard to maintain, their work is available
38
+ in the feature/rails3_compatibility branch.
39
+
40
+ A Rails 3.0 compatible version of the gem is also available:
41
+
42
+ gem install acts-as-taggable-on -v=2.0.0.pre1
43
+
34
44
  === Post Installation (Rails)
35
45
 
36
46
  1. script/generate acts_as_taggable_on_migration
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.6
1
+ 1.1.7
@@ -106,7 +106,6 @@ module ActiveRecord
106
106
 
107
107
  include ActiveRecord::Acts::TaggableOn::InstanceMethods
108
108
  extend ActiveRecord::Acts::TaggableOn::SingletonMethods
109
- alias_method_chain :reload, :tag_list
110
109
  end
111
110
  end
112
111
  end
@@ -383,8 +382,8 @@ module ActiveRecord
383
382
 
384
383
  def save_cached_tag_list
385
384
  self.class.tag_types.map(&:to_s).each do |tag_type|
386
- if self.class.send("caching_#{tag_type.singularize}_list?")
387
- self["cached_#{tag_type.singularize}_list"] = tag_list_cache_on(tag_type.singularize).to_a.flatten.compact.join(', ')
385
+ if self.class.send("caching_#{tag_type.singularize}_list?")
386
+ send(:"cached_#{tag_type.singularize}_list=", tag_list_cache_on(tag_type.singularize).to_a.flatten.compact.join(', '))
388
387
  end
389
388
  end
390
389
  end
@@ -429,14 +428,6 @@ module ActiveRecord
429
428
 
430
429
  true
431
430
  end
432
-
433
- def reload_with_tag_list(*args)
434
- self.class.tag_types.each do |tag_type|
435
- instance_variable_set("@#{tag_type.to_s.singularize}_list", nil)
436
- end
437
-
438
- reload_without_tag_list(*args)
439
- end
440
431
  end
441
432
  end
442
433
  end
@@ -30,7 +30,7 @@ class Tag < ActiveRecord::Base
30
30
  return [] if list.empty?
31
31
 
32
32
  existing_tags = Tag.named_any(list).all
33
- new_tag_names = list.reject { |name| existing_tags.any? { |tag| tag.name.downcase == name.downcase } }
33
+ new_tag_names = list.reject { |name| existing_tags.any? { |tag| tag.name.mb_chars.downcase == name.mb_chars.downcase } }
34
34
  created_tags = new_tag_names.map { |name| Tag.create(:name => name) }
35
35
 
36
36
  existing_tags + created_tags
@@ -15,7 +15,7 @@ describe "Group Helper" do
15
15
  end
16
16
 
17
17
  it "should return all column names joined for TaggableModel GROUP clause" do
18
- @taggable.grouped_column_names_for(TaggableModel).should == "taggable_models.id, taggable_models.name, taggable_models.type"
18
+ @taggable.grouped_column_names_for(TaggableModel).should == "taggable_models.id, taggable_models.name, taggable_models.type, taggable_models.cached_tag_list"
19
19
  end
20
20
  end
21
21
  end
@@ -19,8 +19,8 @@ describe "Taggable" do
19
19
  @taggable.tag_list = ["awesome", "epic"]
20
20
  @taggable.save
21
21
 
22
- TaggableModel.tag_counts_on(:tags).count.should == 2
23
- @taggable.tag_counts_on(:tags).count.should == 2
22
+ TaggableModel.tag_counts_on(:tags).length.should == 2
23
+ @taggable.tag_counts_on(:tags).length.should == 2
24
24
  end
25
25
 
26
26
  it "should be able to create tags" do
@@ -210,9 +210,20 @@ describe "Taggable" do
210
210
  }.should change(Tagging, :count).by(1)
211
211
  end
212
212
 
213
+ describe "Associations" do
214
+ before(:each) do
215
+ @taggable = TaggableModel.create(:tag_list => "awesome, epic")
216
+ end
217
+
218
+ it "should not remove tags when creating associated objects" do
219
+ @taggable.untaggable_models.create!
220
+ @taggable.reload
221
+ @taggable.tag_list.should have(2).items
222
+ end
223
+ end
224
+
213
225
  describe "Single Table Inheritance" do
214
226
  before do
215
- [TaggableModel, Tag, Tagging, TaggableUser].each(&:delete_all)
216
227
  @taggable = TaggableModel.new(:name => "taggable")
217
228
  @inherited_same = InheritingTaggableModel.new(:name => "inherited same")
218
229
  @inherited_different = AlteredInheritingTaggableModel.new(:name => "inherited different")
@@ -19,7 +19,10 @@ ActiveRecord::Schema.define :version => 0 do
19
19
  create_table :taggable_models, :force => true do |t|
20
20
  t.column :name, :string
21
21
  t.column :type, :string
22
- #t.column :cached_tag_list, :string
22
+ t.column :cached_tag_list, :string
23
+ end
24
+ create_table :untaggable_models, :force => true do |t|
25
+ t.column :taggable_model_id, :integer
23
26
  end
24
27
  create_table :taggable_users, :force => true do |t|
25
28
  t.column :name, :string
@@ -27,6 +30,5 @@ ActiveRecord::Schema.define :version => 0 do
27
30
  create_table :other_taggable_models, :force => true do |t|
28
31
  t.column :name, :string
29
32
  t.column :type, :string
30
- #t.column :cached_tag_list, :string
31
33
  end
32
34
  end
@@ -22,7 +22,7 @@ ActiveRecord::Base.establish_connection(
22
22
  "adapter" => "sqlite3", "database" => TEST_DATABASE_FILE
23
23
  )
24
24
 
25
- RAILS_DEFAULT_LOGGER = Logger.new(File.join(File.dirname(__FILE__), "debug.log"))
25
+ ActiveRecord::Base.logger = Logger.new(File.join(File.dirname(__FILE__), "debug.log"))
26
26
 
27
27
  ActiveRecord::Base.silence do
28
28
  ActiveRecord::Migration.verbose = false
@@ -37,6 +37,7 @@ class TaggableModel < ActiveRecord::Base
37
37
  acts_as_taggable_on :languages
38
38
  acts_as_taggable_on :skills
39
39
  acts_as_taggable_on :needs, :offerings
40
+ has_many :untaggable_models
40
41
  end
41
42
 
42
43
  class OtherTaggableModel < ActiveRecord::Base
@@ -56,10 +57,10 @@ class TaggableUser < ActiveRecord::Base
56
57
  end
57
58
 
58
59
  class UntaggableModel < ActiveRecord::Base
60
+ belongs_to :taggable_model, :touch => true
59
61
  end
60
62
 
61
63
  def clean_database!
62
- $debug = false
63
64
  models = [Tag, Tagging, TaggableModel, OtherTaggableModel, InheritingTaggableModel,
64
65
  AlteredInheritingTaggableModel, TaggableUser]
65
66
  models.each do |model|
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 1
8
- - 6
9
- version: 1.1.6
8
+ - 7
9
+ version: 1.1.7
10
10
  platform: ruby
11
11
  authors:
12
12
  - Michael Bleigh
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-02-27 00:00:00 +01:00
17
+ date: 2010-03-08 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies: []
20
20