acts-as-taggable-on 1.1.5 → 1.1.6
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +3 -0
- data/VERSION +1 -1
- data/lib/acts_as_taggable_on/acts_as_taggable_on.rb +2 -2
- data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +4 -0
- data/spec/acts_as_taggable_on/acts_as_tagger_spec.rb +6 -5
- data/spec/acts_as_taggable_on/group_helper_spec.rb +3 -0
- data/spec/acts_as_taggable_on/tag_spec.rb +2 -2
- data/spec/acts_as_taggable_on/taggable_spec.rb +11 -1
- data/spec/acts_as_taggable_on/tagger_spec.rb +1 -1
- data/spec/acts_as_taggable_on/tagging_spec.rb +1 -0
- data/spec/acts_as_taggable_on/tags_helper_spec.rb +1 -1
- data/spec/spec_helper.rb +9 -0
- metadata +12 -5
data/README.rdoc
CHANGED
@@ -89,6 +89,9 @@ also improves compatibility with the will_paginate gem:
|
|
89
89
|
User.tagged_with("awesome").by_date
|
90
90
|
User.tagged_with("awesome").by_date.paginate(:page => params[:page], :per_page => 20)
|
91
91
|
|
92
|
+
#Find a user with matching all tags, not just one
|
93
|
+
User.tagged_with(["awesome", "cool"], :match_all => :true)
|
94
|
+
|
92
95
|
=== Relationships
|
93
96
|
|
94
97
|
You can find objects of the same type based on similar tags on certain contexts.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.6
|
@@ -398,12 +398,12 @@ module ActiveRecord
|
|
398
398
|
|
399
399
|
cache.each do |owner, list|
|
400
400
|
new_tags = Tag.find_or_create_all_with_like_by_name(list.uniq)
|
401
|
-
taggings = Tagging.find(:all, :conditions => { :taggable_id => self.id, :taggable_type => self.class.to_s })
|
401
|
+
taggings = Tagging.find(:all, :conditions => { :taggable_id => self.id, :taggable_type => self.class.base_class.to_s })
|
402
402
|
|
403
403
|
# Destroy old taggings:
|
404
404
|
if owner
|
405
405
|
old_tags = tags_on(context, owner) - new_tags
|
406
|
-
old_taggings = Tagging.find(:all, :conditions => { :taggable_id => self.id, :taggable_type => self.class.to_s, :tag_id => old_tags, :tagger_id => owner.id, :tagger_type => owner.class.to_s, :context => context })
|
406
|
+
old_taggings = Tagging.find(:all, :conditions => { :taggable_id => self.id, :taggable_type => self.class.base_class.to_s, :tag_id => old_tags, :tagger_id => owner.id, :tagger_type => owner.class.to_s, :context => context })
|
407
407
|
|
408
408
|
Tagging.destroy_all :id => old_taggings.map(&:id)
|
409
409
|
else
|
@@ -1,6 +1,10 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../spec_helper'
|
2
2
|
|
3
3
|
describe "Acts As Taggable On" do
|
4
|
+
before(:each) do
|
5
|
+
clean_database!
|
6
|
+
end
|
7
|
+
|
4
8
|
it "should provide a class method 'taggable?' that is false for untaggable models" do
|
5
9
|
UntaggableModel.should_not be_taggable
|
6
10
|
end
|
@@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
2
|
|
3
3
|
describe "acts_as_tagger" do
|
4
4
|
before(:each) do
|
5
|
-
|
5
|
+
clean_database!
|
6
6
|
end
|
7
7
|
|
8
8
|
context "Tagger Method Generation" do
|
@@ -85,18 +85,19 @@ describe "acts_as_tagger" do
|
|
85
85
|
|
86
86
|
context "when called by multiple tagger's" do
|
87
87
|
before(:each) do
|
88
|
-
@user_x = TaggableUser.
|
89
|
-
@user_y = TaggableUser.
|
90
|
-
@taggable = TaggableModel.
|
88
|
+
@user_x = TaggableUser.create(:name => "User X")
|
89
|
+
@user_y = TaggableUser.create(:name => "User Y")
|
90
|
+
@taggable = TaggableModel.create(:name => 'acts_as_taggable_on', :tag_list => 'plugin')
|
91
91
|
|
92
92
|
@user_x.tag(@taggable, :with => 'ruby, rails', :on => :tags)
|
93
93
|
@user_y.tag(@taggable, :with => 'ruby, plugin', :on => :tags)
|
94
94
|
|
95
95
|
@user_y.tag(@taggable, :with => '', :on => :tags)
|
96
|
+
@user_y.tag(@taggable, :with => '', :on => :tags)
|
96
97
|
end
|
97
98
|
|
98
99
|
it "should delete owned tags" do
|
99
|
-
@user_y.owned_tags.should
|
100
|
+
@user_y.owned_tags.should == []
|
100
101
|
end
|
101
102
|
|
102
103
|
it "should not delete other taggers tags" do
|
@@ -2,9 +2,9 @@ require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
2
|
|
3
3
|
describe Tag do
|
4
4
|
before(:each) do
|
5
|
+
clean_database!
|
5
6
|
@tag = Tag.new
|
6
|
-
@user = TaggableModel.create(:name => "Pablo")
|
7
|
-
Tag.delete_all
|
7
|
+
@user = TaggableModel.create(:name => "Pablo")
|
8
8
|
end
|
9
9
|
|
10
10
|
describe "named like any" do
|
@@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
2
|
|
3
3
|
describe "Taggable" do
|
4
4
|
before(:each) do
|
5
|
-
|
5
|
+
clean_database!
|
6
6
|
@taggable = TaggableModel.new(:name => "Bob Jones")
|
7
7
|
end
|
8
8
|
|
@@ -247,5 +247,15 @@ describe "Taggable" do
|
|
247
247
|
AlteredInheritingTaggableModel.tag_counts_on(:tags).map(&:name).should == %w(fork spoon)
|
248
248
|
TaggableModel.tag_counts_on(:tags).map(&:name).should == %w(bob kelso fork spoon)
|
249
249
|
end
|
250
|
+
|
251
|
+
it 'should store same tag without validation conflict' do
|
252
|
+
@taggable.tag_list = 'one'
|
253
|
+
@taggable.save!
|
254
|
+
|
255
|
+
@inherited_same.tag_list = 'one'
|
256
|
+
@inherited_same.save!
|
257
|
+
|
258
|
+
@inherited_same.update_attributes! :name => 'foo'
|
259
|
+
end
|
250
260
|
end
|
251
261
|
end
|
@@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
2
|
|
3
3
|
describe TagsHelper do
|
4
4
|
before(:each) do
|
5
|
-
|
5
|
+
clean_database!
|
6
6
|
|
7
7
|
@bob = TaggableModel.create(:name => "Bob Jones", :language_list => "ruby, php")
|
8
8
|
@tom = TaggableModel.create(:name => "Tom Marley", :language_list => "ruby, java")
|
data/spec/spec_helper.rb
CHANGED
@@ -56,4 +56,13 @@ class TaggableUser < ActiveRecord::Base
|
|
56
56
|
end
|
57
57
|
|
58
58
|
class UntaggableModel < ActiveRecord::Base
|
59
|
+
end
|
60
|
+
|
61
|
+
def clean_database!
|
62
|
+
$debug = false
|
63
|
+
models = [Tag, Tagging, TaggableModel, OtherTaggableModel, InheritingTaggableModel,
|
64
|
+
AlteredInheritingTaggableModel, TaggableUser]
|
65
|
+
models.each do |model|
|
66
|
+
model.destroy_all
|
67
|
+
end
|
59
68
|
end
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts-as-taggable-on
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 1
|
7
|
+
- 1
|
8
|
+
- 6
|
9
|
+
version: 1.1.6
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Michael Bleigh
|
@@ -9,7 +14,7 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-02-
|
17
|
+
date: 2010-02-27 00:00:00 +01:00
|
13
18
|
default_executable:
|
14
19
|
dependencies: []
|
15
20
|
|
@@ -63,18 +68,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
63
68
|
requirements:
|
64
69
|
- - ">="
|
65
70
|
- !ruby/object:Gem::Version
|
71
|
+
segments:
|
72
|
+
- 0
|
66
73
|
version: "0"
|
67
|
-
version:
|
68
74
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
75
|
requirements:
|
70
76
|
- - ">="
|
71
77
|
- !ruby/object:Gem::Version
|
78
|
+
segments:
|
79
|
+
- 0
|
72
80
|
version: "0"
|
73
|
-
version:
|
74
81
|
requirements: []
|
75
82
|
|
76
83
|
rubyforge_project:
|
77
|
-
rubygems_version: 1.3.
|
84
|
+
rubygems_version: 1.3.6
|
78
85
|
signing_key:
|
79
86
|
specification_version: 3
|
80
87
|
summary: ActsAsTaggableOn is a tagging plugin for Rails that provides multiple tagging contexts on a single model.
|