acts-as-taggable-on 3.2.3 → 3.2.5
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.
- checksums.yaml +4 -4
- data/.travis.yml +8 -7
- data/Gemfile +0 -1
- data/acts-as-taggable-on.gemspec +6 -7
- data/gemfiles/activerecord_3.2.gemfile +0 -1
- data/gemfiles/activerecord_4.0.gemfile +0 -1
- data/gemfiles/activerecord_4.1.gemfile +0 -1
- data/gemfiles/activerecord_edge.gemfile +0 -1
- data/lib/acts-as-taggable-on.rb +28 -20
- data/lib/acts_as_taggable_on/tag_list.rb +13 -77
- data/lib/acts_as_taggable_on/tag_list_parser.rb +78 -0
- data/lib/acts_as_taggable_on/{acts_as_taggable_on → taggable}/core.rb +14 -10
- data/lib/acts_as_taggable_on/{acts_as_taggable_on → taggable}/ownership.rb +1 -1
- data/lib/acts_as_taggable_on/taggable.rb +7 -6
- data/lib/acts_as_taggable_on/utils.rb +2 -26
- data/lib/acts_as_taggable_on/version.rb +1 -1
- data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +1 -1
- data/spec/acts_as_taggable_on/acts_as_tagger_spec.rb +1 -0
- data/spec/acts_as_taggable_on/caching_spec.rb +1 -0
- data/spec/acts_as_taggable_on/related_spec.rb +1 -0
- data/spec/acts_as_taggable_on/single_table_inheritance_spec.rb +1 -0
- data/spec/acts_as_taggable_on/tag_list_parser_spec.rb +46 -0
- data/spec/acts_as_taggable_on/tag_list_spec.rb +3 -40
- data/spec/acts_as_taggable_on/tag_spec.rb +29 -35
- data/spec/acts_as_taggable_on/taggable_spec.rb +55 -55
- data/spec/acts_as_taggable_on/tagger_spec.rb +1 -0
- data/spec/acts_as_taggable_on/tagging_spec.rb +2 -1
- data/spec/acts_as_taggable_on/tags_helper_spec.rb +1 -0
- data/spec/acts_as_taggable_on/utils_spec.rb +1 -0
- data/spec/internal/app/models/cached_model_with_array.rb +1 -1
- data/spec/internal/app/models/models.rb +2 -2
- data/spec/internal/db/schema.rb +2 -2
- data/spec/spec_helper.rb +0 -1
- data/spec/support/0-helpers.rb +32 -0
- metadata +36 -47
- data/spec/schema.rb +0 -82
- /data/lib/acts_as_taggable_on/{acts_as_taggable_on/compatibility.rb → compatibility.rb} +0 -0
- /data/lib/acts_as_taggable_on/{acts_as_taggable_on → taggable}/cache.rb +0 -0
- /data/lib/acts_as_taggable_on/{acts_as_taggable_on → taggable}/collection.rb +0 -0
- /data/lib/acts_as_taggable_on/{acts_as_taggable_on → taggable}/dirty.rb +0 -0
- /data/lib/acts_as_taggable_on/{acts_as_taggable_on → taggable}/related.rb +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
|
|
2
3
|
require 'spec_helper'
|
|
3
4
|
|
|
4
5
|
describe ActsAsTaggableOn::TagList do
|
|
@@ -7,9 +8,7 @@ describe ActsAsTaggableOn::TagList do
|
|
|
7
8
|
|
|
8
9
|
it { should be_kind_of Array }
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
expect(ActsAsTaggableOn::TagList.from([])).to be_empty
|
|
12
|
-
end
|
|
11
|
+
|
|
13
12
|
|
|
14
13
|
describe '#add' do
|
|
15
14
|
it 'should be able to be add a new tag word' do
|
|
@@ -118,41 +117,5 @@ describe ActsAsTaggableOn::TagList do
|
|
|
118
117
|
|
|
119
118
|
end
|
|
120
119
|
|
|
121
|
-
describe 'Multiple Delimiter' do
|
|
122
|
-
before do
|
|
123
|
-
@old_delimiter = ActsAsTaggableOn.delimiter
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
after do
|
|
127
|
-
ActsAsTaggableOn.delimiter = @old_delimiter
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
it 'should separate tags by delimiters' do
|
|
131
|
-
ActsAsTaggableOn.delimiter = [',', ' ', '\|']
|
|
132
|
-
tag_list = ActsAsTaggableOn::TagList.from 'cool, data|I have'
|
|
133
|
-
expect(tag_list.to_s).to eq('cool, data, I, have')
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
it 'should escape quote' do
|
|
137
|
-
ActsAsTaggableOn.delimiter = [',', ' ', '\|']
|
|
138
|
-
tag_list = ActsAsTaggableOn::TagList.from "'I have'|cool, data"
|
|
139
|
-
expect(tag_list.to_s).to eq('"I have", cool, data')
|
|
140
|
-
|
|
141
|
-
tag_list = ActsAsTaggableOn::TagList.from '"I, have"|cool, data'
|
|
142
|
-
expect(tag_list.to_s).to eq('"I, have", cool, data')
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
it 'should work for utf8 delimiter and long delimiter' do
|
|
146
|
-
ActsAsTaggableOn.delimiter = [',', '的', '可能是']
|
|
147
|
-
tag_list = ActsAsTaggableOn::TagList.from '我的东西可能是不见了,还好有备份'
|
|
148
|
-
expect(tag_list.to_s).to eq('我, 东西, 不见了, 还好有备份')
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
it 'should work for multiple quoted tags' do
|
|
152
|
-
ActsAsTaggableOn.delimiter = [',']
|
|
153
|
-
tag_list = ActsAsTaggableOn::TagList.from '"Ruby Monsters","eat Katzenzungen"'
|
|
154
|
-
expect(tag_list.to_s).to eq('Ruby Monsters, eat Katzenzungen')
|
|
155
|
-
end
|
|
156
|
-
end
|
|
157
120
|
|
|
158
121
|
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
2
|
require 'spec_helper'
|
|
3
3
|
require 'db/migrate/2_add_missing_unique_indices.rb'
|
|
4
4
|
|
|
@@ -18,21 +18,19 @@ describe ActsAsTaggableOn::Tag do
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
describe 'named like any' do
|
|
21
|
-
if
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
expect(ActsAsTaggableOn::Tag.named_like_any(%w(awesome epic)).count).to eq(2)
|
|
30
|
-
end
|
|
21
|
+
context 'case insensitive collation and unique index on tag name', if: using_case_insensitive_collation? do
|
|
22
|
+
before(:each) do
|
|
23
|
+
ActsAsTaggableOn::Tag.create(name: 'Awesome')
|
|
24
|
+
ActsAsTaggableOn::Tag.create(name: 'epic')
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'should find both tags' do
|
|
28
|
+
expect(ActsAsTaggableOn::Tag.named_like_any(%w(awesome epic)).count).to eq(2)
|
|
31
29
|
end
|
|
32
30
|
end
|
|
33
31
|
|
|
34
32
|
context 'case insensitive collation without indexes or case sensitive collation with indexes' do
|
|
35
|
-
if
|
|
33
|
+
if using_case_insensitive_collation?
|
|
36
34
|
include_context 'without unique index'
|
|
37
35
|
end
|
|
38
36
|
|
|
@@ -69,28 +67,24 @@ describe ActsAsTaggableOn::Tag do
|
|
|
69
67
|
end
|
|
70
68
|
end
|
|
71
69
|
|
|
72
|
-
unless
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
end
|
|
70
|
+
describe 'find or create by unicode name', unless: using_sqlite? do
|
|
71
|
+
before(:each) do
|
|
72
|
+
@tag.name = 'привет'
|
|
73
|
+
@tag.save
|
|
74
|
+
end
|
|
78
75
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
it 'should find by name' do
|
|
77
|
+
expect(ActsAsTaggableOn::Tag.find_or_create_with_like_by_name('привет')).to eq(@tag)
|
|
78
|
+
end
|
|
82
79
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
80
|
+
it 'should find by name case insensitive' do
|
|
81
|
+
expect(ActsAsTaggableOn::Tag.find_or_create_with_like_by_name('ПРИВЕТ')).to eq(@tag)
|
|
82
|
+
end
|
|
86
83
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
expect(ActsAsTaggableOn::Tag.find_or_create_with_like_by_name('Iñupiat')).to eq(@tag)
|
|
92
|
-
end
|
|
93
|
-
end
|
|
84
|
+
it 'should find by name accent insensitive', if: using_case_insensitive_collation? do
|
|
85
|
+
@tag.name = 'inupiat'
|
|
86
|
+
@tag.save
|
|
87
|
+
expect(ActsAsTaggableOn::Tag.find_or_create_with_like_by_name('Iñupiat')).to eq(@tag)
|
|
94
88
|
end
|
|
95
89
|
end
|
|
96
90
|
|
|
@@ -109,7 +103,7 @@ describe ActsAsTaggableOn::Tag do
|
|
|
109
103
|
end
|
|
110
104
|
|
|
111
105
|
context 'case sensitive' do
|
|
112
|
-
if
|
|
106
|
+
if using_case_insensitive_collation?
|
|
113
107
|
include_context 'without unique index'
|
|
114
108
|
end
|
|
115
109
|
|
|
@@ -128,7 +122,7 @@ describe ActsAsTaggableOn::Tag do
|
|
|
128
122
|
end
|
|
129
123
|
|
|
130
124
|
context 'case sensitive' do
|
|
131
|
-
if
|
|
125
|
+
if using_case_insensitive_collation?
|
|
132
126
|
include_context 'without unique index'
|
|
133
127
|
end
|
|
134
128
|
|
|
@@ -228,7 +222,7 @@ describe ActsAsTaggableOn::Tag do
|
|
|
228
222
|
end
|
|
229
223
|
|
|
230
224
|
context 'case sensitive' do
|
|
231
|
-
if
|
|
225
|
+
if using_case_insensitive_collation?
|
|
232
226
|
include_context 'without unique index'
|
|
233
227
|
end
|
|
234
228
|
|
|
@@ -242,7 +236,7 @@ describe ActsAsTaggableOn::Tag do
|
|
|
242
236
|
end
|
|
243
237
|
|
|
244
238
|
context 'case sensitive' do
|
|
245
|
-
if
|
|
239
|
+
if using_case_insensitive_collation?
|
|
246
240
|
include_context 'without unique index'
|
|
247
241
|
end
|
|
248
242
|
|
|
@@ -208,6 +208,14 @@ describe 'Taggable' do
|
|
|
208
208
|
expect(TaggableModel.tagged_with('ruby').group(:created_at).count.count).to eq(1)
|
|
209
209
|
end
|
|
210
210
|
|
|
211
|
+
it 'can be used as scope' do
|
|
212
|
+
@taggable.skill_list = 'ruby'
|
|
213
|
+
@taggable.save
|
|
214
|
+
untaggable_model = @taggable.untaggable_models.create!(name:'foobar')
|
|
215
|
+
scope_tag = TaggableModel.tagged_with('ruby', any: 'distinct', order: 'taggable_models.name asc')
|
|
216
|
+
expect(UntaggableModel.joins(:taggable_model).merge(scope_tag).except(:select)).to eq([untaggable_model])
|
|
217
|
+
end
|
|
218
|
+
|
|
211
219
|
it "shouldn't generate a query with DISTINCT by default" do
|
|
212
220
|
@taggable.skill_list = 'ruby, rails, css'
|
|
213
221
|
@taggable.save
|
|
@@ -255,16 +263,14 @@ describe 'Taggable' do
|
|
|
255
263
|
expect(TaggableModel.select('distinct(taggable_models.id), taggable_models.*').joins(:untaggable_models).tagged_with(['rails', 'ruby'], :any => false).to_a.sort).to eq([bob, frank].sort)
|
|
256
264
|
end
|
|
257
265
|
|
|
258
|
-
unless
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
TaggableModel.create(name: 'Katia', tag_list: 'ПРИВЕТ')
|
|
266
|
+
it 'should not care about case for unicode names', unless: using_sqlite? do
|
|
267
|
+
ActsAsTaggableOn.strict_case_match = false
|
|
268
|
+
TaggableModel.create(name: 'Anya', tag_list: 'ПРИВЕТ')
|
|
269
|
+
TaggableModel.create(name: 'Igor', tag_list: 'привет')
|
|
270
|
+
TaggableModel.create(name: 'Katia', tag_list: 'ПРИВЕТ')
|
|
264
271
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
end
|
|
272
|
+
expect(ActsAsTaggableOn::Tag.all.size).to eq(1)
|
|
273
|
+
expect(TaggableModel.tagged_with('привет').to_a).to eq(TaggableModel.tagged_with('ПРИВЕТ').to_a)
|
|
268
274
|
end
|
|
269
275
|
|
|
270
276
|
context 'should be able to create and find tags in languages without capitalization :' do
|
|
@@ -586,28 +592,26 @@ describe 'Taggable' do
|
|
|
586
592
|
|
|
587
593
|
end
|
|
588
594
|
|
|
589
|
-
if
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
connor.save
|
|
606
|
-
end
|
|
595
|
+
xit 'should not duplicate tags added on different threads', if: supports_concurrency?, skip: 'FIXME, Deadlocks in travis' do
|
|
596
|
+
#TODO, try with more threads and fix deadlock
|
|
597
|
+
thread_count = 4
|
|
598
|
+
barrier = Barrier.new thread_count
|
|
599
|
+
|
|
600
|
+
expect {
|
|
601
|
+
thread_count.times.map do |idx|
|
|
602
|
+
Thread.start do
|
|
603
|
+
connor = TaggableModel.first_or_create(name: 'Connor')
|
|
604
|
+
connor.tag_list = 'There, can, be, only, one'
|
|
605
|
+
barrier.wait
|
|
606
|
+
begin
|
|
607
|
+
connor.save
|
|
608
|
+
rescue ActsAsTaggableOn::DuplicateTagError
|
|
609
|
+
# second save should succeed
|
|
610
|
+
connor.save
|
|
607
611
|
end
|
|
608
|
-
end
|
|
609
|
-
|
|
610
|
-
|
|
612
|
+
end
|
|
613
|
+
end.map(&:join)
|
|
614
|
+
}.to change(ActsAsTaggableOn::Tag, :count).by(5)
|
|
611
615
|
end
|
|
612
616
|
end
|
|
613
617
|
|
|
@@ -853,34 +857,30 @@ describe 'Taggable' do
|
|
|
853
857
|
end
|
|
854
858
|
end
|
|
855
859
|
|
|
856
|
-
if
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
@taggables = [@taggable, TaggableModelWithJson.new(:name => 'John Doe')]
|
|
862
|
-
end
|
|
860
|
+
describe 'Taggable model with json columns', if: postgresql_support_json? do
|
|
861
|
+
before(:each) do
|
|
862
|
+
@taggable = TaggableModelWithJson.new(:name => 'Bob Jones')
|
|
863
|
+
@taggables = [@taggable, TaggableModelWithJson.new(:name => 'John Doe')]
|
|
864
|
+
end
|
|
863
865
|
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
866
|
+
it 'should be able to find by tag with context' do
|
|
867
|
+
@taggable.skill_list = 'ruby, rails, css'
|
|
868
|
+
@taggable.tag_list = 'bob, charlie'
|
|
869
|
+
@taggable.save
|
|
868
870
|
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
871
|
+
expect(TaggableModelWithJson.tagged_with('ruby').first).to eq(@taggable)
|
|
872
|
+
expect(TaggableModelWithJson.tagged_with('ruby, css').first).to eq(@taggable)
|
|
873
|
+
expect(TaggableModelWithJson.tagged_with('bob', :on => :skills).first).to_not eq(@taggable)
|
|
874
|
+
expect(TaggableModelWithJson.tagged_with('bob', :on => :tags).first).to eq(@taggable)
|
|
875
|
+
end
|
|
874
876
|
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
877
|
+
it 'should be able to find tagged with any tag' do
|
|
878
|
+
bob = TaggableModelWithJson.create(:name => 'Bob', :tag_list => 'fitter, happier, more productive', :skill_list => 'ruby, rails, css')
|
|
879
|
+
frank = TaggableModelWithJson.create(:name => 'Frank', :tag_list => 'weaker, depressed, inefficient', :skill_list => 'ruby, rails, css')
|
|
880
|
+
steve = TaggableModelWithJson.create(:name => 'Steve', :tag_list => 'fitter, happier, more productive', :skill_list => 'c++, java, ruby')
|
|
879
881
|
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
end
|
|
884
|
-
end
|
|
882
|
+
expect(TaggableModelWithJson.tagged_with(%w(ruby java), :order => 'taggable_model_with_jsons.name', :any => true).to_a).to eq([bob, frank, steve])
|
|
883
|
+
expect(TaggableModelWithJson.tagged_with(%w(c++ fitter), :order => 'taggable_model_with_jsons.name', :any => true).to_a).to eq([bob, steve])
|
|
884
|
+
expect(TaggableModelWithJson.tagged_with(%w(depressed css), :order => 'taggable_model_with_jsons.name', :any => true).to_a).to eq([bob, frank])
|
|
885
885
|
end
|
|
886
886
|
end
|
|
@@ -77,11 +77,11 @@ class OrderedTaggableModel < ActiveRecord::Base
|
|
|
77
77
|
acts_as_ordered_taggable_on :colours
|
|
78
78
|
end
|
|
79
79
|
|
|
80
|
-
if
|
|
80
|
+
if using_postgresql?
|
|
81
81
|
class CachedModelWithArray < ActiveRecord::Base
|
|
82
82
|
acts_as_taggable
|
|
83
83
|
end
|
|
84
|
-
if
|
|
84
|
+
if postgresql_support_json?
|
|
85
85
|
class TaggableModelWithJson < ActiveRecord::Base
|
|
86
86
|
acts_as_taggable
|
|
87
87
|
acts_as_taggable_on :skills
|
data/spec/internal/db/schema.rb
CHANGED
|
@@ -76,7 +76,7 @@ ActiveRecord::Schema.define version: 0 do
|
|
|
76
76
|
|
|
77
77
|
|
|
78
78
|
# Special cases for postgresql
|
|
79
|
-
if
|
|
79
|
+
if using_postgresql?
|
|
80
80
|
|
|
81
81
|
create_table :other_cached_with_array_models, force: true do |t|
|
|
82
82
|
t.column :name, :string
|
|
@@ -86,7 +86,7 @@ ActiveRecord::Schema.define version: 0 do
|
|
|
86
86
|
t.column :cached_glass_list, :string, array: true
|
|
87
87
|
end
|
|
88
88
|
|
|
89
|
-
if
|
|
89
|
+
if postgresql_support_json?
|
|
90
90
|
create_table :taggable_model_with_jsons, :force => true do |t|
|
|
91
91
|
t.column :name, :string
|
|
92
92
|
t.column :type, :string
|
data/spec/spec_helper.rb
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
def using_sqlite?
|
|
2
|
+
ActsAsTaggableOn::Utils.connection && ActsAsTaggableOn::Utils.connection.adapter_name == 'SQLite'
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
def supports_concurrency?
|
|
6
|
+
!using_sqlite?
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def using_postgresql?
|
|
10
|
+
ActsAsTaggableOn::Utils.using_postgresql?
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def postgresql_version
|
|
14
|
+
if using_postgresql?
|
|
15
|
+
ActsAsTaggableOn::Utils.connection.execute('SHOW SERVER_VERSION').first['server_version'].to_f
|
|
16
|
+
else
|
|
17
|
+
0.0
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def postgresql_support_json?
|
|
22
|
+
postgresql_version >= 9.2
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def using_mysql?
|
|
27
|
+
ActsAsTaggableOn::Utils.using_mysql?
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def using_case_insensitive_collation?
|
|
31
|
+
using_mysql? && ActsAsTaggableOn::Utils.connection.collation =~ /_ci\Z/
|
|
32
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: acts-as-taggable-on
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.2.
|
|
4
|
+
version: 3.2.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michael Bleigh
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2014-05-
|
|
12
|
+
date: 2014-05-25 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: activerecord
|
|
@@ -69,16 +69,16 @@ dependencies:
|
|
|
69
69
|
name: mysql2
|
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
|
-
- - "
|
|
72
|
+
- - "~>"
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version:
|
|
74
|
+
version: 0.3.7
|
|
75
75
|
type: :development
|
|
76
76
|
prerelease: false
|
|
77
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
78
|
requirements:
|
|
79
|
-
- - "
|
|
79
|
+
- - "~>"
|
|
80
80
|
- !ruby/object:Gem::Version
|
|
81
|
-
version:
|
|
81
|
+
version: 0.3.7
|
|
82
82
|
- !ruby/object:Gem::Dependency
|
|
83
83
|
name: pg
|
|
84
84
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -99,84 +99,70 @@ dependencies:
|
|
|
99
99
|
requirements:
|
|
100
100
|
- - "~>"
|
|
101
101
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: 3.0.0.
|
|
102
|
+
version: 3.0.0.beta
|
|
103
103
|
type: :development
|
|
104
104
|
prerelease: false
|
|
105
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
106
106
|
requirements:
|
|
107
107
|
- - "~>"
|
|
108
108
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: 3.0.0.
|
|
109
|
+
version: 3.0.0.beta
|
|
110
110
|
- !ruby/object:Gem::Dependency
|
|
111
111
|
name: rspec-its
|
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
|
113
113
|
requirements:
|
|
114
|
-
- - "
|
|
114
|
+
- - ">="
|
|
115
115
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: '
|
|
116
|
+
version: '0'
|
|
117
117
|
type: :development
|
|
118
118
|
prerelease: false
|
|
119
119
|
version_requirements: !ruby/object:Gem::Requirement
|
|
120
120
|
requirements:
|
|
121
|
-
- - "
|
|
121
|
+
- - ">="
|
|
122
122
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: '
|
|
123
|
+
version: '0'
|
|
124
124
|
- !ruby/object:Gem::Dependency
|
|
125
125
|
name: rspec
|
|
126
126
|
requirement: !ruby/object:Gem::Requirement
|
|
127
127
|
requirements:
|
|
128
|
-
- -
|
|
129
|
-
- !ruby/object:Gem::Version
|
|
130
|
-
version: 3.0.0.beta2
|
|
131
|
-
type: :development
|
|
132
|
-
prerelease: false
|
|
133
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
134
|
-
requirements:
|
|
135
|
-
- - '='
|
|
136
|
-
- !ruby/object:Gem::Version
|
|
137
|
-
version: 3.0.0.beta2
|
|
138
|
-
- !ruby/object:Gem::Dependency
|
|
139
|
-
name: ammeter
|
|
140
|
-
requirement: !ruby/object:Gem::Requirement
|
|
141
|
-
requirements:
|
|
142
|
-
- - "~>"
|
|
128
|
+
- - ">="
|
|
143
129
|
- !ruby/object:Gem::Version
|
|
144
|
-
version: '
|
|
130
|
+
version: '0'
|
|
145
131
|
type: :development
|
|
146
132
|
prerelease: false
|
|
147
133
|
version_requirements: !ruby/object:Gem::Requirement
|
|
148
134
|
requirements:
|
|
149
|
-
- - "
|
|
135
|
+
- - ">="
|
|
150
136
|
- !ruby/object:Gem::Version
|
|
151
|
-
version: '
|
|
137
|
+
version: '0'
|
|
152
138
|
- !ruby/object:Gem::Dependency
|
|
153
139
|
name: barrier
|
|
154
140
|
requirement: !ruby/object:Gem::Requirement
|
|
155
141
|
requirements:
|
|
156
|
-
- - "
|
|
142
|
+
- - ">="
|
|
157
143
|
- !ruby/object:Gem::Version
|
|
158
|
-
version: '
|
|
144
|
+
version: '0'
|
|
159
145
|
type: :development
|
|
160
146
|
prerelease: false
|
|
161
147
|
version_requirements: !ruby/object:Gem::Requirement
|
|
162
148
|
requirements:
|
|
163
|
-
- - "
|
|
149
|
+
- - ">="
|
|
164
150
|
- !ruby/object:Gem::Version
|
|
165
|
-
version: '
|
|
151
|
+
version: '0'
|
|
166
152
|
- !ruby/object:Gem::Dependency
|
|
167
153
|
name: database_cleaner
|
|
168
154
|
requirement: !ruby/object:Gem::Requirement
|
|
169
155
|
requirements:
|
|
170
|
-
- - "
|
|
156
|
+
- - ">="
|
|
171
157
|
- !ruby/object:Gem::Version
|
|
172
|
-
version: '
|
|
158
|
+
version: '0'
|
|
173
159
|
type: :development
|
|
174
160
|
prerelease: false
|
|
175
161
|
version_requirements: !ruby/object:Gem::Requirement
|
|
176
162
|
requirements:
|
|
177
|
-
- - "
|
|
163
|
+
- - ">="
|
|
178
164
|
- !ruby/object:Gem::Version
|
|
179
|
-
version: '
|
|
165
|
+
version: '0'
|
|
180
166
|
description: With ActsAsTaggableOn, you can tag a single model on several contexts,
|
|
181
167
|
such as skills, interests, and awards. It also provides other advanced functionality.
|
|
182
168
|
email:
|
|
@@ -208,17 +194,18 @@ files:
|
|
|
208
194
|
- gemfiles/activerecord_edge.gemfile
|
|
209
195
|
- lib/acts-as-taggable-on.rb
|
|
210
196
|
- lib/acts_as_taggable_on.rb
|
|
211
|
-
- lib/acts_as_taggable_on/
|
|
212
|
-
- lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb
|
|
213
|
-
- lib/acts_as_taggable_on/acts_as_taggable_on/compatibility.rb
|
|
214
|
-
- lib/acts_as_taggable_on/acts_as_taggable_on/core.rb
|
|
215
|
-
- lib/acts_as_taggable_on/acts_as_taggable_on/dirty.rb
|
|
216
|
-
- lib/acts_as_taggable_on/acts_as_taggable_on/ownership.rb
|
|
217
|
-
- lib/acts_as_taggable_on/acts_as_taggable_on/related.rb
|
|
197
|
+
- lib/acts_as_taggable_on/compatibility.rb
|
|
218
198
|
- lib/acts_as_taggable_on/engine.rb
|
|
219
199
|
- lib/acts_as_taggable_on/tag.rb
|
|
220
200
|
- lib/acts_as_taggable_on/tag_list.rb
|
|
201
|
+
- lib/acts_as_taggable_on/tag_list_parser.rb
|
|
221
202
|
- lib/acts_as_taggable_on/taggable.rb
|
|
203
|
+
- lib/acts_as_taggable_on/taggable/cache.rb
|
|
204
|
+
- lib/acts_as_taggable_on/taggable/collection.rb
|
|
205
|
+
- lib/acts_as_taggable_on/taggable/core.rb
|
|
206
|
+
- lib/acts_as_taggable_on/taggable/dirty.rb
|
|
207
|
+
- lib/acts_as_taggable_on/taggable/ownership.rb
|
|
208
|
+
- lib/acts_as_taggable_on/taggable/related.rb
|
|
222
209
|
- lib/acts_as_taggable_on/tagger.rb
|
|
223
210
|
- lib/acts_as_taggable_on/tagging.rb
|
|
224
211
|
- lib/acts_as_taggable_on/tags_helper.rb
|
|
@@ -229,6 +216,7 @@ files:
|
|
|
229
216
|
- spec/acts_as_taggable_on/caching_spec.rb
|
|
230
217
|
- spec/acts_as_taggable_on/related_spec.rb
|
|
231
218
|
- spec/acts_as_taggable_on/single_table_inheritance_spec.rb
|
|
219
|
+
- spec/acts_as_taggable_on/tag_list_parser_spec.rb
|
|
232
220
|
- spec/acts_as_taggable_on/tag_list_spec.rb
|
|
233
221
|
- spec/acts_as_taggable_on/tag_spec.rb
|
|
234
222
|
- spec/acts_as_taggable_on/taggable_spec.rb
|
|
@@ -253,8 +241,8 @@ files:
|
|
|
253
241
|
- spec/internal/app/models/user.rb
|
|
254
242
|
- spec/internal/config/database.yml.sample
|
|
255
243
|
- spec/internal/db/schema.rb
|
|
256
|
-
- spec/schema.rb
|
|
257
244
|
- spec/spec_helper.rb
|
|
245
|
+
- spec/support/0-helpers.rb
|
|
258
246
|
- spec/support/array.rb
|
|
259
247
|
- spec/support/database.rb
|
|
260
248
|
- spec/support/database_cleaner.rb
|
|
@@ -301,6 +289,7 @@ test_files:
|
|
|
301
289
|
- spec/acts_as_taggable_on/caching_spec.rb
|
|
302
290
|
- spec/acts_as_taggable_on/related_spec.rb
|
|
303
291
|
- spec/acts_as_taggable_on/single_table_inheritance_spec.rb
|
|
292
|
+
- spec/acts_as_taggable_on/tag_list_parser_spec.rb
|
|
304
293
|
- spec/acts_as_taggable_on/tag_list_spec.rb
|
|
305
294
|
- spec/acts_as_taggable_on/tag_spec.rb
|
|
306
295
|
- spec/acts_as_taggable_on/taggable_spec.rb
|
|
@@ -325,8 +314,8 @@ test_files:
|
|
|
325
314
|
- spec/internal/app/models/user.rb
|
|
326
315
|
- spec/internal/config/database.yml.sample
|
|
327
316
|
- spec/internal/db/schema.rb
|
|
328
|
-
- spec/schema.rb
|
|
329
317
|
- spec/spec_helper.rb
|
|
318
|
+
- spec/support/0-helpers.rb
|
|
330
319
|
- spec/support/array.rb
|
|
331
320
|
- spec/support/database.rb
|
|
332
321
|
- spec/support/database_cleaner.rb
|