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.
- data/.gitignore +1 -0
- data/.travis.yml +1 -2
- data/CHANGELOG +10 -0
- data/README.rdoc +31 -63
- data/acts-as-taggable-on.gemspec +4 -3
- data/lib/acts-as-taggable-on/version.rb +1 -1
- data/lib/acts-as-taggable-on.rb +0 -4
- data/lib/acts_as_taggable_on/acts_as_taggable_on/cache.rb +1 -1
- data/lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb +1 -1
- data/lib/acts_as_taggable_on/acts_as_taggable_on/core.rb +29 -17
- data/lib/acts_as_taggable_on/acts_as_taggable_on/related.rb +15 -15
- data/lib/acts_as_taggable_on/acts_as_taggable_on.rb +4 -13
- data/lib/acts_as_taggable_on/tag.rb +12 -13
- data/lib/acts_as_taggable_on/tagging.rb +0 -2
- data/lib/acts_as_taggable_on/utils.rb +7 -8
- data/lib/generators/acts_as_taggable_on/migration/migration_generator.rb +9 -2
- data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +228 -61
- data/spec/acts_as_taggable_on/tag_list_spec.rb +4 -0
- data/spec/acts_as_taggable_on/tag_spec.rb +11 -15
- data/spec/acts_as_taggable_on/taggable_spec.rb +89 -27
- data/spec/acts_as_taggable_on/tagger_spec.rb +14 -0
- data/spec/acts_as_taggable_on/utils_spec.rb +2 -3
- data/spec/database.yml.sample +1 -1
- data/spec/generators/acts_as_taggable_on/migration/migration_generator_spec.rb +22 -0
- data/spec/models.rb +11 -2
- data/spec/schema.rb +7 -0
- data/spec/spec_helper.rb +1 -0
- metadata +95 -123
- data/VERSION +0 -1
- data/generators/acts_as_taggable_on_migration/acts_as_taggable_on_migration_generator.rb +0 -7
- data/generators/acts_as_taggable_on_migration/templates/migration.rb +0 -29
- data/lib/acts_as_taggable_on/compatibility/Gemfile +0 -8
- 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"
|
data/spec/database.yml.sample
CHANGED
|
@@ -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
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
|
-
|
|
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
|
-
|
|
19
|
-
|
|
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
|
-
|
|
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
|
-
|
|
42
|
-
|
|
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
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
57
|
-
|
|
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
|
-
|
|
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
|
-
|
|
71
|
-
|
|
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
|
-
|
|
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
|
-
|
|
86
|
-
|
|
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
|
-
|
|
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
|
-
|
|
100
|
-
|
|
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
|
-
|
|
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
|
-
|
|
114
|
-
|
|
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
|
-
|
|
121
|
-
|
|
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
|
-
|
|
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
|
-
|
|
192
|
-
segments:
|
|
160
|
+
requirements:
|
|
161
|
+
- - ! '>='
|
|
162
|
+
- !ruby/object:Gem::Version
|
|
163
|
+
version: '0'
|
|
164
|
+
segments:
|
|
193
165
|
- 0
|
|
194
|
-
|
|
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
|
-
|
|
201
|
-
segments:
|
|
169
|
+
requirements:
|
|
170
|
+
- - ! '>='
|
|
171
|
+
- !ruby/object:Gem::Version
|
|
172
|
+
version: '0'
|
|
173
|
+
segments:
|
|
202
174
|
- 0
|
|
203
|
-
|
|
175
|
+
hash: 2237132345428656164
|
|
204
176
|
requirements: []
|
|
205
|
-
|
|
206
177
|
rubyforge_project:
|
|
207
|
-
rubygems_version: 1.
|
|
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
|