acts-as-taggable-on 2.4.0 → 2.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/Appraisals +7 -0
  4. data/Gemfile +3 -1
  5. data/{MIT-LICENSE.md → LICENSE.md} +0 -0
  6. data/README.md +22 -16
  7. data/Rakefile +2 -2
  8. data/acts-as-taggable-on.gemspec +22 -19
  9. data/gemfiles/rails_3.gemfile +8 -0
  10. data/gemfiles/rails_4.gemfile +8 -0
  11. data/lib/acts-as-taggable-on.rb +2 -0
  12. data/lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb +5 -7
  13. data/lib/acts_as_taggable_on/acts_as_taggable_on/compatibility.rb +34 -0
  14. data/lib/acts_as_taggable_on/acts_as_taggable_on/core.rb +75 -50
  15. data/lib/acts_as_taggable_on/acts_as_taggable_on/dirty.rb +1 -1
  16. data/lib/acts_as_taggable_on/acts_as_taggable_on/ownership.rb +21 -12
  17. data/lib/acts_as_taggable_on/acts_as_taggable_on/related.rb +27 -18
  18. data/lib/acts_as_taggable_on/tag.rb +8 -8
  19. data/lib/acts_as_taggable_on/taggable.rb +10 -7
  20. data/lib/acts_as_taggable_on/tagger.rb +12 -3
  21. data/lib/acts_as_taggable_on/tagging.rb +2 -2
  22. data/lib/acts_as_taggable_on/tags_helper.rb +0 -2
  23. data/lib/{acts-as-taggable-on → acts_as_taggable_on}/version.rb +1 -1
  24. data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +1 -216
  25. data/spec/acts_as_taggable_on/acts_as_tagger_spec.rb +8 -8
  26. data/spec/acts_as_taggable_on/related_spec.rb +143 -0
  27. data/spec/acts_as_taggable_on/single_table_inheritance_spec.rb +187 -0
  28. data/spec/acts_as_taggable_on/tag_list_spec.rb +2 -2
  29. data/spec/acts_as_taggable_on/tag_spec.rb +3 -4
  30. data/spec/acts_as_taggable_on/taggable_spec.rb +127 -116
  31. data/spec/acts_as_taggable_on/tagger_spec.rb +32 -33
  32. data/spec/acts_as_taggable_on/tagging_spec.rb +1 -1
  33. data/spec/acts_as_taggable_on/tags_helper_spec.rb +2 -2
  34. data/spec/acts_as_taggable_on/utils_spec.rb +2 -2
  35. data/spec/models.rb +2 -2
  36. data/spec/schema.rb +1 -1
  37. data/spec/spec_helper.rb +7 -4
  38. metadata +48 -34
  39. data/CHANGELOG.md +0 -35
  40. data/UPGRADING +0 -14
  41. data/rails/init.rb +0 -1
  42. data/uninstall.rb +0 -1
@@ -1,9 +1,9 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  describe "Tagger" do
4
4
  before(:each) do
5
5
  clean_database!
6
- @user = TaggableUser.create
6
+ @user = User.create
7
7
  @taggable = TaggableModel.create(:name => "Bob Jones")
8
8
  end
9
9
 
@@ -21,18 +21,43 @@ describe "Tagger" do
21
21
  @taggable2 = TaggableModel.create(:name => "Jim Jones")
22
22
  @taggable3 = TaggableModel.create(:name => "Jane Doe")
23
23
 
24
- @user2 = TaggableUser.new
24
+ @user2 = User.new
25
25
  @user.tag(@taggable, :with => 'ruby, scheme', :on => :tags)
26
26
  @user2.tag(@taggable2, :with => 'ruby, scheme', :on => :tags)
27
27
  @user2.tag(@taggable3, :with => 'ruby, scheme', :on => :tags)
28
28
 
29
29
  TaggableModel.tagged_with(%w(ruby scheme), :owned_by => @user).count.should == 1
30
30
  TaggableModel.tagged_with(%w(ruby scheme), :owned_by => @user2).count.should == 2
31
+ end
32
+
33
+ it "only returns objects tagged by owned_by when any is true" do
34
+ @user2 = User.new
35
+ @taggable2 = TaggableModel.create(:name => "Jim Jones")
36
+ @taggable3 = TaggableModel.create(:name => "Jane Doe")
31
37
 
38
+ @user.tag(@taggable, :with => 'ruby', :on => :tags)
39
+ @user.tag(@taggable2, :with => 'java', :on => :tags)
40
+ @user2.tag(@taggable3, :with => 'ruby', :on => :tags)
41
+
42
+ tags = TaggableModel.tagged_with(%w(ruby java), :owned_by => @user, :any => true)
43
+ tags.should match_array [@taggable, @taggable2]
44
+ end
45
+
46
+ it "only returns objects tagged by owned_by when exclude is true" do
47
+ @user2 = User.new
48
+ @taggable2 = TaggableModel.create(:name => "Jim Jones")
49
+ @taggable3 = TaggableModel.create(:name => "Jane Doe")
50
+
51
+ @user.tag(@taggable, :with => 'ruby', :on => :tags)
52
+ @user.tag(@taggable2, :with => 'java', :on => :tags)
53
+ @user2.tag(@taggable3, :with => 'java', :on => :tags)
54
+
55
+ tags = TaggableModel.tagged_with(%w(ruby), :owned_by => @user, :exclude => true)
56
+ tags.should match_array [@taggable2]
32
57
  end
33
58
 
34
59
  it "should not overlap tags from different taggers" do
35
- @user2 = TaggableUser.new
60
+ @user2 = User.new
36
61
  lambda{
37
62
  @user.tag(@taggable, :with => 'ruby, scheme', :on => :tags)
38
63
  @user2.tag(@taggable, :with => 'java, python, lisp, ruby', :on => :tags)
@@ -51,7 +76,7 @@ describe "Tagger" do
51
76
  end
52
77
 
53
78
  it "should not lose tags from different taggers" do
54
- @user2 = TaggableUser.create
79
+ @user2 = User.create
55
80
  @user2.tag(@taggable, :with => 'java, python, lisp, ruby', :on => :tags)
56
81
  @user.tag(@taggable, :with => 'ruby, scheme', :on => :tags)
57
82
 
@@ -69,7 +94,7 @@ describe "Tagger" do
69
94
  end
70
95
 
71
96
  it "should not lose tags" do
72
- @user2 = TaggableUser.create
97
+ @user2 = User.create
73
98
 
74
99
  @user.tag(@taggable, :with => 'awesome', :on => :tags)
75
100
  @user2.tag(@taggable, :with => 'awesome, epic', :on => :tags)
@@ -109,30 +134,4 @@ describe "Tagger" do
109
134
  }.should_not change(ActsAsTaggableOn::Tagging, :count)
110
135
  end
111
136
 
112
- describe "Single Table Inheritance" do
113
- before do
114
- @user3 = InheritingTaggableUser.create
115
- end
116
-
117
- it "should have taggings" do
118
- @user3.tag(@taggable, :with=>'ruby,scheme', :on=>:tags)
119
- @user3.owned_taggings.size == 2
120
- end
121
-
122
- it "should have tags" do
123
- @user3.tag(@taggable, :with=>'ruby,scheme', :on=>:tags)
124
- @user3.owned_tags.size == 2
125
- end
126
-
127
- it "should return tags for the inheriting tagger" do
128
- @user3.tag(@taggable, :with => 'ruby, scheme', :on => :tags)
129
- @taggable.tags_from(@user3).sort.should == %w(ruby scheme).sort
130
- end
131
-
132
- it "should scope objects returned by tagged_with by owners" do
133
- @user3.tag(@taggable, :with => 'ruby, scheme', :on => :tags)
134
- TaggableModel.tagged_with(%w(ruby scheme), :owned_by => @user3).count.should == 1
135
- end
136
- end
137
-
138
- end
137
+ end
@@ -1,4 +1,4 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  describe ActsAsTaggableOn::Tagging do
4
4
  before(:each) do
@@ -1,4 +1,4 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  describe ActsAsTaggableOn::TagsHelper do
4
4
  before(:each) do
@@ -41,4 +41,4 @@ describe ActsAsTaggableOn::TagsHelper do
41
41
  tags["c++"].should == "sucky"
42
42
  tags["php"].should == "sucky"
43
43
  end
44
- end
44
+ end
@@ -1,4 +1,4 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  describe ActsAsTaggableOn::Utils do
4
4
  describe "like_operator" do
@@ -18,4 +18,4 @@ describe ActsAsTaggableOn::Utils do
18
18
  TaggableModel.send(:like_operator).should == "LIKE"
19
19
  end
20
20
  end
21
- end
21
+ end
@@ -32,11 +32,11 @@ class AlteredInheritingTaggableModel < TaggableModel
32
32
  acts_as_taggable_on :parts
33
33
  end
34
34
 
35
- class TaggableUser < ActiveRecord::Base
35
+ class User < ActiveRecord::Base
36
36
  acts_as_tagger
37
37
  end
38
38
 
39
- class InheritingTaggableUser < TaggableUser
39
+ class Student < User
40
40
  end
41
41
 
42
42
  class UntaggableModel < ActiveRecord::Base
@@ -45,7 +45,7 @@ ActiveRecord::Schema.define :version => 0 do
45
45
  t.column :cached_glass_list, :string
46
46
  end
47
47
 
48
- create_table :taggable_users, :force => true do |t|
48
+ create_table :users, :force => true do |t|
49
49
  t.column :name, :string
50
50
  end
51
51
 
@@ -58,15 +58,18 @@ if File.exists?(database_yml)
58
58
  ActiveRecord::Base.establish_connection(config)
59
59
  end
60
60
 
61
- ActiveRecord::Base.logger = Logger.new(File.join(File.dirname(__FILE__), "debug.log"))
61
+ logger = ActiveRecord::Base.logger = Logger.new(File.join(File.dirname(__FILE__), "debug.log"))
62
62
  ActiveRecord::Base.default_timezone = :utc
63
63
 
64
- ActiveRecord::Base.silence do
64
+ begin
65
+ old_logger_level, logger.level = logger.level, ::Logger::ERROR
65
66
  ActiveRecord::Migration.verbose = false
66
67
 
67
68
  load(File.dirname(__FILE__) + '/schema.rb')
68
69
  load(File.dirname(__FILE__) + '/models.rb')
69
- end
70
+ ensure
71
+ logger.level = old_logger_level
72
+ end
70
73
 
71
74
  else
72
75
  raise "Please create #{database_yml} first to configure your database. Take a look at: #{database_yml}.sample"
@@ -74,7 +77,7 @@ end
74
77
 
75
78
  def clean_database!
76
79
  models = [ActsAsTaggableOn::Tag, ActsAsTaggableOn::Tagging, TaggableModel, OtherTaggableModel, InheritingTaggableModel,
77
- AlteredInheritingTaggableModel, TaggableUser, UntaggableModel, OrderedTaggableModel]
80
+ AlteredInheritingTaggableModel, User, UntaggableModel, OrderedTaggableModel]
78
81
  models.each do |model|
79
82
  ActiveRecord::Base.connection.execute "DELETE FROM #{model.table_name}"
80
83
  end
metadata CHANGED
@@ -1,29 +1,50 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts-as-taggable-on
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Bleigh
8
+ - Joost Baaij
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2012-07-16 00:00:00.000000000 Z
12
+ date: 2013-05-07 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rails
15
16
  requirement: !ruby/object:Gem::Requirement
16
17
  requirements:
17
- - - ~>
18
+ - - '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '3'
21
+ - - <
18
22
  - !ruby/object:Gem::Version
19
- version: '3.0'
23
+ version: '5'
20
24
  type: :runtime
21
25
  prerelease: false
22
26
  version_requirements: !ruby/object:Gem::Requirement
23
27
  requirements:
24
- - - ~>
28
+ - - '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '3'
31
+ - - <
25
32
  - !ruby/object:Gem::Version
26
- version: '3.0'
33
+ version: '5'
34
+ - !ruby/object:Gem::Dependency
35
+ name: rspec-rails
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 2.13.0
41
+ type: :development
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 2.13.0
27
48
  - !ruby/object:Gem::Dependency
28
49
  name: rspec
29
50
  requirement: !ruby/object:Gem::Requirement
@@ -42,16 +63,16 @@ dependencies:
42
63
  name: ammeter
43
64
  requirement: !ruby/object:Gem::Requirement
44
65
  requirements:
45
- - - ~>
66
+ - - '>='
46
67
  - !ruby/object:Gem::Version
47
- version: 0.1.3
68
+ version: '0'
48
69
  type: :development
49
70
  prerelease: false
50
71
  version_requirements: !ruby/object:Gem::Requirement
51
72
  requirements:
52
- - - ~>
73
+ - - '>='
53
74
  - !ruby/object:Gem::Version
54
- version: 0.1.3
75
+ version: '0'
55
76
  - !ruby/object:Gem::Dependency
56
77
  name: sqlite3
57
78
  requirement: !ruby/object:Gem::Requirement
@@ -124,7 +145,9 @@ dependencies:
124
145
  version: '0'
125
146
  description: With ActsAsTaggableOn, you can tag a single model on several contexts,
126
147
  such as skills, interests, and awards. It also provides other advanced functionality.
127
- email: michael@intridea.com
148
+ email:
149
+ - michael@intridea.com
150
+ - joost@spacebabies.nl
128
151
  executables: []
129
152
  extensions: []
130
153
  extra_rdoc_files: []
@@ -132,18 +155,19 @@ files:
132
155
  - .gitignore
133
156
  - .rspec
134
157
  - .travis.yml
135
- - CHANGELOG.md
158
+ - Appraisals
136
159
  - Gemfile
137
160
  - Guardfile
138
- - MIT-LICENSE.md
161
+ - LICENSE.md
139
162
  - README.md
140
163
  - Rakefile
141
- - UPGRADING
142
164
  - acts-as-taggable-on.gemspec
165
+ - gemfiles/rails_3.gemfile
166
+ - gemfiles/rails_4.gemfile
143
167
  - lib/acts-as-taggable-on.rb
144
- - lib/acts-as-taggable-on/version.rb
145
168
  - lib/acts_as_taggable_on/acts_as_taggable_on/cache.rb
146
169
  - lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb
170
+ - lib/acts_as_taggable_on/acts_as_taggable_on/compatibility.rb
147
171
  - lib/acts_as_taggable_on/acts_as_taggable_on/core.rb
148
172
  - lib/acts_as_taggable_on/acts_as_taggable_on/dirty.rb
149
173
  - lib/acts_as_taggable_on/acts_as_taggable_on/ownership.rb
@@ -155,11 +179,13 @@ files:
155
179
  - lib/acts_as_taggable_on/tagging.rb
156
180
  - lib/acts_as_taggable_on/tags_helper.rb
157
181
  - lib/acts_as_taggable_on/utils.rb
182
+ - lib/acts_as_taggable_on/version.rb
158
183
  - lib/generators/acts_as_taggable_on/migration/migration_generator.rb
159
184
  - lib/generators/acts_as_taggable_on/migration/templates/active_record/migration.rb
160
- - rails/init.rb
161
185
  - spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb
162
186
  - spec/acts_as_taggable_on/acts_as_tagger_spec.rb
187
+ - spec/acts_as_taggable_on/related_spec.rb
188
+ - spec/acts_as_taggable_on/single_table_inheritance_spec.rb
163
189
  - spec/acts_as_taggable_on/tag_list_spec.rb
164
190
  - spec/acts_as_taggable_on/tag_spec.rb
165
191
  - spec/acts_as_taggable_on/taggable_spec.rb
@@ -173,25 +199,11 @@ files:
173
199
  - spec/models.rb
174
200
  - spec/schema.rb
175
201
  - spec/spec_helper.rb
176
- - uninstall.rb
177
- homepage: ''
178
- licenses: []
202
+ homepage: https://github.com/mbleigh/acts-as-taggable-on
203
+ licenses:
204
+ - MIT
179
205
  metadata: {}
180
- post_install_message: |2+
181
-
182
- ** acts-as-taggable-on version 2.4.0
183
-
184
- Hello! This version is the first one released by me (@tilsammans),
185
- a new maintainer on the project. It's been a while since the last
186
- release and I am not 100% sure if any breaking changes have been
187
- introduced. Please test your tagging functionality carefully.
188
-
189
- From now on things should stabilize. Please check the project's
190
- milestones and compatibilities stated in the readme. If you have
191
- any questions, feel free to create an issue on github.
192
-
193
- https://github.com/mbleigh/acts-as-taggable-on
194
-
206
+ post_install_message:
195
207
  rdoc_options: []
196
208
  require_paths:
197
209
  - lib
@@ -214,6 +226,8 @@ summary: Advanced tagging for Rails.
214
226
  test_files:
215
227
  - spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb
216
228
  - spec/acts_as_taggable_on/acts_as_tagger_spec.rb
229
+ - spec/acts_as_taggable_on/related_spec.rb
230
+ - spec/acts_as_taggable_on/single_table_inheritance_spec.rb
217
231
  - spec/acts_as_taggable_on/tag_list_spec.rb
218
232
  - spec/acts_as_taggable_on/tag_spec.rb
219
233
  - spec/acts_as_taggable_on/taggable_spec.rb
@@ -1,35 +0,0 @@
1
- ## 2011-08-21
2
- * escape _ and % for mysql and postgres (@tilsammans)
3
- * Now depends on mysql2 gem
4
- * tagged_with :any is chainable now (@jeffreyiacono)
5
- * tagged_with(nil) returns scoped object
6
- * Case-insensitivity for TaggedModel.tagged_with for PostgreSQL database
7
- * tagged_with(' ') returns scoped object
8
- * remove warning for rails 3.1 about class_inheritable_attribute
9
- * use ActiveRecord migration_number to avoid clashs (@atd)
10
-
11
- ## 2010-02-17
12
- * Converted the plugin to be compatible with Rails3
13
-
14
- ## 2009-12-02
15
-
16
- * PostgreSQL is now supported (via morgoth)
17
-
18
- ## 2008-07-17
19
-
20
- * Can now use a named_scope to find tags!
21
-
22
- ## 2008-06-23
23
-
24
- * Can now find related objects of another class (tristanzdunn)
25
- * Removed extraneous down migration cruft (azabaj)
26
-
27
- ## 2008-06-09
28
-
29
- * Added support for Single Table Inheritance
30
- * Adding gemspec and rails/init.rb for gemified plugin
31
-
32
- ## 2007-12-12
33
-
34
- * Added ability to use dynamic tag contexts
35
- * Fixed missing migration generator
data/UPGRADING DELETED
@@ -1,14 +0,0 @@
1
-
2
- ** acts-as-taggable-on version 2.4.0
3
-
4
- Hello! This version is the first one released by me (@tilsammans),
5
- a new maintainer on the project. It's been a while since the last
6
- release and I am not 100% sure if any breaking changes have been
7
- introduced. Please test your tagging functionality carefully.
8
-
9
- From now on things should stabilize. Please check the project's
10
- milestones and compatibilities stated in the readme. If you have
11
- any questions, feel free to create an issue on github.
12
-
13
- https://github.com/mbleigh/acts-as-taggable-on
14
-
@@ -1 +0,0 @@
1
- require 'acts-as-taggable-on'
@@ -1 +0,0 @@
1
- # Uninstall hook code here