acts_as_amico 0.2.2 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/acts_as_amico/amico_object.rb +81 -13
- data/lib/acts_as_amico/version.rb +1 -1
- data/spec/active_resource_spec.rb +6 -4
- data/spec/amico_object_spec.rb +101 -162
- data/spec/reciprocal_followers.rb +72 -0
- metadata +20 -18
@@ -10,6 +10,19 @@ module ActsAsAmico
|
|
10
10
|
@amico_key ||= :id
|
11
11
|
end
|
12
12
|
|
13
|
+
def amico_methods
|
14
|
+
@result || begin
|
15
|
+
result = []
|
16
|
+
methods = [:following, :followers, :blocked, :reciprocated, :pending]
|
17
|
+
methods.each do |m|
|
18
|
+
["_count", "_page_count" ].each do |s|
|
19
|
+
result << "#{m.to_s}#{s}".to_sym
|
20
|
+
end
|
21
|
+
end
|
22
|
+
result
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
13
26
|
def acts_as_amico *args
|
14
27
|
options = args.extract_options!
|
15
28
|
options.assert_valid_keys(:amico_key)
|
@@ -25,7 +38,7 @@ module ActsAsAmico
|
|
25
38
|
end
|
26
39
|
|
27
40
|
def method_missing(sym, *args, &block)
|
28
|
-
if
|
41
|
+
if self.class.amico_methods.include? sym
|
29
42
|
args[0] = args[0].amico_key if not args[0].nil? and args[0].respond_to?(:amico_key)
|
30
43
|
args.unshift(amico_key)
|
31
44
|
if sym.nil?
|
@@ -42,26 +55,81 @@ module ActsAsAmico
|
|
42
55
|
pass_sym_to_amico(sym) || super(sym)
|
43
56
|
end
|
44
57
|
|
58
|
+
def get_all *args
|
59
|
+
options = args.extract_options!
|
60
|
+
options.assert_valid_keys(:scope)
|
61
|
+
valid_params = [:following, :followers, :blocked, :reciprocated, :pending]
|
62
|
+
scope = options[:scope] || Amico.default_scope_key
|
63
|
+
meth = args[0]
|
64
|
+
raise "Must be one of #{valid_params.to_s}" if not valid_params.include? meth
|
65
|
+
count = self.send("#{meth}_count".to_sym, scope)
|
66
|
+
self.send("#{meth}", :page_size => count, :scope => scope)
|
67
|
+
end
|
68
|
+
|
69
|
+
# Lists
|
45
70
|
def followers options = {}
|
46
|
-
|
47
|
-
Amico.followers
|
71
|
+
scope = options[:scope] || Amico.default_scope_key
|
72
|
+
Amico.followers amico_key, options, scope
|
73
|
+
end
|
74
|
+
def following options = {}
|
75
|
+
scope = options[:scope] || Amico.default_scope_key
|
76
|
+
Amico.following amico_key, options, scope
|
77
|
+
end
|
78
|
+
def reciprocated options = {}
|
79
|
+
scope = options[:scope] || Amico.default_scope_key
|
80
|
+
Amico.reciprocated amico_key, options, scope
|
81
|
+
end
|
82
|
+
def pending options = {}
|
83
|
+
scope = options[:scope] || Amico.default_scope_key
|
84
|
+
Amico.pending amico_key, options, scope
|
85
|
+
end
|
86
|
+
def blocked options = {}
|
87
|
+
scope = options[:scope] || Amico.default_scope_key
|
88
|
+
Amico.blocked amico_key, options, scope
|
48
89
|
end
|
49
90
|
|
50
91
|
# Named destructive methods
|
51
|
-
def follow! obj,
|
52
|
-
Amico.
|
92
|
+
def follow! obj, options = {}
|
93
|
+
scope = options[:scope] || Amico.default_scope_key
|
94
|
+
Amico.follow(amico_key, obj.amico_key, scope)
|
95
|
+
end
|
96
|
+
def unfollow! obj, options = {}
|
97
|
+
scope = options[:scope] || Amico.default_scope_key
|
98
|
+
Amico.unfollow(amico_key, obj.amico_key, scope)
|
99
|
+
end
|
100
|
+
def accept! obj, options = {}
|
101
|
+
scope = options[:scope] || Amico.default_scope_key
|
102
|
+
Amico.accept(amico_key, obj.amico_key, scope)
|
103
|
+
end
|
104
|
+
def block! obj, options = {}
|
105
|
+
scope = options[:scope] || Amico.default_scope_key
|
106
|
+
Amico.block(amico_key, obj.amico_key, scope)
|
107
|
+
end
|
108
|
+
def unblock! obj, options = {}
|
109
|
+
scope = options[:scope] || Amico.default_scope_key
|
110
|
+
Amico.unblock(amico_key, obj.amico_key, scope)
|
111
|
+
end
|
112
|
+
|
113
|
+
# Booleans
|
114
|
+
def following? obj, options = {}
|
115
|
+
scope = options[:scope] || Amico.default_scope_key
|
116
|
+
Amico.following?(amico_key, obj.amico_key, scope)
|
53
117
|
end
|
54
|
-
def
|
55
|
-
Amico.
|
118
|
+
def follower? obj, options = {}
|
119
|
+
scope = options[:scope] || Amico.default_scope_key
|
120
|
+
Amico.follower?(amico_key, obj.amico_key, scope)
|
56
121
|
end
|
57
|
-
def
|
58
|
-
Amico.
|
122
|
+
def blocked? obj, options = {}
|
123
|
+
scope = options[:scope] || Amico.default_scope_key
|
124
|
+
Amico.blocked?(amico_key, obj.amico_key, scope)
|
59
125
|
end
|
60
|
-
def
|
61
|
-
Amico.
|
126
|
+
def pending? obj, options = {}
|
127
|
+
scope = options[:scope] || Amico.default_scope_key
|
128
|
+
Amico.pending?(amico_key, obj.amico_key, scope)
|
62
129
|
end
|
63
|
-
def
|
64
|
-
Amico.
|
130
|
+
def reciprocated? obj, options = {}
|
131
|
+
scope = options[:scope] || Amico.default_scope_key
|
132
|
+
Amico.reciprocated?(amico_key, obj.amico_key, scope)
|
65
133
|
end
|
66
134
|
|
67
135
|
private
|
@@ -36,14 +36,16 @@ describe ActsAsAmico do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
it "should follow" do
|
39
|
-
@usera.follow! @admin, 'admin'
|
40
|
-
@usera.following?(@admin, 'admin').should be_true
|
39
|
+
@usera.follow! @admin, :scope => 'admin'
|
40
|
+
@usera.following?(@admin, :scope => 'admin').should be_true
|
41
41
|
@admin.followers(:scope => 'admin').include?(@usera.amico_key.to_s).should be_true
|
42
42
|
end
|
43
43
|
it "should allow following an ActiveResource object" do
|
44
|
-
@usera.follow! @rest_object, 'rest_object'
|
45
|
-
@usera.following?(@rest_object, 'rest_object').should be_true
|
44
|
+
@usera.follow! @rest_object, :scope => 'rest_object'
|
45
|
+
@usera.following?(@rest_object, :scope => 'rest_object').should be_true
|
46
46
|
|
47
47
|
@rest_object.followers(:scope => 'rest_object').include?(@usera.amico_key.to_s).should be_true
|
48
48
|
end
|
49
|
+
|
50
|
+
|
49
51
|
end
|
data/spec/amico_object_spec.rb
CHANGED
@@ -16,36 +16,36 @@ describe ActsAsAmico do
|
|
16
16
|
|
17
17
|
describe '#follow' do
|
18
18
|
it 'should allow you to follow' do
|
19
|
-
@usera.follow(@userb)
|
19
|
+
@usera.follow!(@userb)
|
20
20
|
|
21
21
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(1)
|
22
22
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.followers_key}:#{Amico.default_scope_key}:#{@userb.send(@userb.class.amico_key)}").should be(1)
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'should not allow you to follow yourself' do
|
26
|
-
@usera.follow(@usera)
|
26
|
+
@usera.follow!(@usera)
|
27
27
|
|
28
28
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(0)
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'should add each individual to the reciprocated set if you both follow each other' do
|
32
|
-
@usera.follow(@userb)
|
33
|
-
@userb.follow(@usera)
|
32
|
+
@usera.follow!(@userb)
|
33
|
+
@userb.follow!(@usera)
|
34
34
|
|
35
35
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.reciprocated_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(1)
|
36
36
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.reciprocated_key}:#{Amico.default_scope_key}:#{@userb.send(@userb.class.amico_key)}").should be(1)
|
37
37
|
end
|
38
38
|
describe "with non-id key" do
|
39
39
|
it 'should allow you to follow' do
|
40
|
-
@usera.follow(@admin)
|
40
|
+
@usera.follow!(@admin)
|
41
41
|
|
42
42
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(1)
|
43
43
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.followers_key}:#{Amico.default_scope_key}:#{@admin.send(@admin.class.amico_key)}").should be(1)
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'should add each individual to the reciprocated set if you both follow each other' do
|
47
|
-
@usera.follow(@admin)
|
48
|
-
@admin.follow(@usera)
|
47
|
+
@usera.follow!(@admin)
|
48
|
+
@admin.follow!(@usera)
|
49
49
|
|
50
50
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.reciprocated_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(1)
|
51
51
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.reciprocated_key}:#{Amico.default_scope_key}:#{@admin.send(@admin.class.amico_key)}").should be(1)
|
@@ -56,12 +56,12 @@ describe ActsAsAmico do
|
|
56
56
|
|
57
57
|
describe '#unfollow' do
|
58
58
|
it 'should allow you to unfollow' do
|
59
|
-
@usera.follow(@userb)
|
59
|
+
@usera.follow!(@userb)
|
60
60
|
|
61
61
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(1)
|
62
62
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.followers_key}:#{Amico.default_scope_key}:#{@userb.send(@userb.class.amico_key)}").should be(1)
|
63
63
|
|
64
|
-
@usera.unfollow(@userb)
|
64
|
+
@usera.unfollow!(@userb)
|
65
65
|
|
66
66
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(0)
|
67
67
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.followers_key}:#{Amico.default_scope_key}:#{@userb.send(@userb.class.amico_key)}").should be(0)
|
@@ -71,12 +71,12 @@ describe ActsAsAmico do
|
|
71
71
|
|
72
72
|
describe "non-id key" do
|
73
73
|
it 'should allow you to unfollow' do
|
74
|
-
@usera.follow(@admin)
|
74
|
+
@usera.follow!(@admin)
|
75
75
|
|
76
76
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(1)
|
77
77
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.followers_key}:#{Amico.default_scope_key}:#{@admin.send(@admin.class.amico_key)}").should be(1)
|
78
78
|
|
79
|
-
@usera.unfollow(@admin)
|
79
|
+
@usera.unfollow!(@admin)
|
80
80
|
|
81
81
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(0)
|
82
82
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.followers_key}:#{Amico.default_scope_key}:#{@admin.send(@admin.class.amico_key)}").should be(0)
|
@@ -88,8 +88,8 @@ describe ActsAsAmico do
|
|
88
88
|
|
89
89
|
describe '#block' do
|
90
90
|
it 'should allow you to block someone following you' do
|
91
|
-
@userb.follow(@usera)
|
92
|
-
@usera.block(@userb)
|
91
|
+
@userb.follow!(@usera)
|
92
|
+
@usera.block!(@userb)
|
93
93
|
|
94
94
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@userb.send(@userb.class.amico_key)}").should be(0)
|
95
95
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.blocked_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(1)
|
@@ -98,32 +98,32 @@ describe ActsAsAmico do
|
|
98
98
|
end
|
99
99
|
|
100
100
|
it 'should allow you to block someone who is not following you' do
|
101
|
-
@usera.block(@userb)
|
101
|
+
@usera.block!(@userb)
|
102
102
|
|
103
103
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@userb.send(@userb.class.amico_key)}").should be(0)
|
104
104
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.blocked_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(1)
|
105
105
|
end
|
106
106
|
|
107
107
|
it 'should not allow someone you have blocked to follow you' do
|
108
|
-
@usera.block(@userb)
|
108
|
+
@usera.block!(@userb)
|
109
109
|
|
110
110
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@userb.send(@userb.class.amico_key)}").should be(0)
|
111
111
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.blocked_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(1)
|
112
112
|
|
113
|
-
@userb.follow(@usera)
|
113
|
+
@userb.follow!(@usera)
|
114
114
|
|
115
115
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@userb.send(@userb.class.amico_key)}").should be(0)
|
116
116
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.blocked_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(1)
|
117
117
|
end
|
118
118
|
|
119
119
|
it 'should not allow you to block yourself' do
|
120
|
-
@usera.block(@usera)
|
120
|
+
@usera.block!(@usera)
|
121
121
|
@usera.blocked?(@usera).should be_false
|
122
122
|
end
|
123
123
|
describe "non-id key" do
|
124
124
|
it 'should allow you to block someone following you' do
|
125
|
-
@admin.follow(@usera)
|
126
|
-
@usera.block(@admin)
|
125
|
+
@admin.follow!(@usera)
|
126
|
+
@usera.block!(@admin)
|
127
127
|
|
128
128
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@userb.send(@admin.class.amico_key)}").should be(0)
|
129
129
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.blocked_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(1)
|
@@ -132,19 +132,19 @@ describe ActsAsAmico do
|
|
132
132
|
end
|
133
133
|
|
134
134
|
it 'should allow you to block someone who is not following you' do
|
135
|
-
@usera.block(@userb)
|
135
|
+
@usera.block!(@userb)
|
136
136
|
|
137
137
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@userb.send(@admin.class.amico_key)}").should be(0)
|
138
138
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.blocked_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(1)
|
139
139
|
end
|
140
140
|
|
141
141
|
it 'should not allow someone you have blocked to follow you' do
|
142
|
-
@usera.block(@admin)
|
142
|
+
@usera.block!(@admin)
|
143
143
|
|
144
144
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@userb.send(@admin.class.amico_key)}").should be(0)
|
145
145
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.blocked_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(1)
|
146
146
|
|
147
|
-
@admin.follow(@usera)
|
147
|
+
@admin.follow!(@usera)
|
148
148
|
|
149
149
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@userb.send(@admin.class.amico_key)}").should be(0)
|
150
150
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.blocked_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(1)
|
@@ -155,15 +155,15 @@ describe ActsAsAmico do
|
|
155
155
|
|
156
156
|
describe '#unblock' do
|
157
157
|
it 'should allow you to unblock someone you have blocked' do
|
158
|
-
@usera.block(@userb)
|
158
|
+
@usera.block!(@userb)
|
159
159
|
@usera.blocked?(@userb).should be_true
|
160
|
-
@usera.unblock(@userb)
|
160
|
+
@usera.unblock!(@userb)
|
161
161
|
@usera.blocked?(@userb).should be_false
|
162
162
|
end
|
163
163
|
it 'should allow you to unblock someone you have blocked with non-id keys' do
|
164
|
-
@usera.block(@admin)
|
164
|
+
@usera.block!(@admin)
|
165
165
|
@usera.blocked?(@admin).should be_true
|
166
|
-
@usera.unblock(@admin)
|
166
|
+
@usera.unblock!(@admin)
|
167
167
|
@usera.blocked?(@admin).should be_false
|
168
168
|
end
|
169
169
|
end
|
@@ -209,7 +209,7 @@ describe ActsAsAmico do
|
|
209
209
|
end
|
210
210
|
describe '#block!' do
|
211
211
|
it 'should allow you to block someone following you' do
|
212
|
-
@userb.follow(@usera)
|
212
|
+
@userb.follow!(@usera)
|
213
213
|
@usera.block!(@userb)
|
214
214
|
|
215
215
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@userb.send(@userb.class.amico_key)}").should be(0)
|
@@ -255,20 +255,20 @@ describe ActsAsAmico do
|
|
255
255
|
|
256
256
|
describe '#following?' do
|
257
257
|
it 'should return that you are following' do
|
258
|
-
@usera.follow(@userb)
|
258
|
+
@usera.follow!(@userb)
|
259
259
|
@usera.following?(@userb).should be_true
|
260
260
|
@userb.following?(@usera).should be_false
|
261
261
|
|
262
|
-
@userb.follow(@usera)
|
262
|
+
@userb.follow!(@usera)
|
263
263
|
@userb.following?(@usera).should be_true
|
264
264
|
end
|
265
265
|
describe "non-id keys" do
|
266
266
|
it 'should return that you are following' do
|
267
|
-
@usera.follow(@admin)
|
267
|
+
@usera.follow!(@admin)
|
268
268
|
@usera.following?(@admin).should be_true
|
269
269
|
@admin.following?(@usera).should be_false
|
270
270
|
|
271
|
-
@admin.follow(@usera)
|
271
|
+
@admin.follow!(@usera)
|
272
272
|
@admin.following?(@usera).should be_true
|
273
273
|
end
|
274
274
|
end
|
@@ -276,20 +276,20 @@ describe ActsAsAmico do
|
|
276
276
|
|
277
277
|
describe '#follower?' do
|
278
278
|
it 'should return that you are being followed' do
|
279
|
-
@userb.follow(@usera)
|
279
|
+
@userb.follow!(@usera)
|
280
280
|
@usera.follower?(@userb).should be_true
|
281
281
|
@userb.follower?(@usera).should be_false
|
282
282
|
|
283
|
-
@usera.follow(@userb)
|
283
|
+
@usera.follow!(@userb)
|
284
284
|
@userb.follower?(@usera).should be_true
|
285
285
|
end
|
286
286
|
describe "non-id keys" do
|
287
287
|
it 'should return that you are being followed' do
|
288
|
-
@admin.follow(@usera)
|
288
|
+
@admin.follow!(@usera)
|
289
289
|
@usera.follower?(@admin).should be_true
|
290
290
|
@admin.follower?(@usera).should be_false
|
291
291
|
|
292
|
-
@usera.follow(@admin)
|
292
|
+
@usera.follow!(@admin)
|
293
293
|
@admin.follower?(@usera).should be_true
|
294
294
|
end
|
295
295
|
end
|
@@ -297,13 +297,13 @@ describe ActsAsAmico do
|
|
297
297
|
|
298
298
|
describe '#blocked?' do
|
299
299
|
it 'should return that someone is being blocked' do
|
300
|
-
@usera.block(@userb)
|
300
|
+
@usera.block!(@userb)
|
301
301
|
@usera.blocked?(@userb).should be_true
|
302
302
|
@userb.following?(@usera).should be_false
|
303
303
|
end
|
304
304
|
describe "non-id keys" do
|
305
305
|
it 'should return that someone is being blocked' do
|
306
|
-
@usera.block(@admin)
|
306
|
+
@usera.block!(@admin)
|
307
307
|
@usera.blocked?(@admin).should be_true
|
308
308
|
@admin.following?(@usera).should be_false
|
309
309
|
end
|
@@ -312,24 +312,24 @@ describe ActsAsAmico do
|
|
312
312
|
|
313
313
|
describe '#reciprocated?' do
|
314
314
|
it 'should return true if both individuals are following each other' do
|
315
|
-
@usera.follow(@userb)
|
316
|
-
@userb.follow(@usera)
|
315
|
+
@usera.follow!(@userb)
|
316
|
+
@userb.follow!(@usera)
|
317
317
|
@usera.reciprocated?(@userb).should be_true
|
318
318
|
end
|
319
319
|
|
320
320
|
it 'should return false if both individuals are not following each other' do
|
321
|
-
@usera.follow(@userb)
|
321
|
+
@usera.follow!(@userb)
|
322
322
|
@usera.reciprocated?(@userb).should be_false
|
323
323
|
end
|
324
324
|
describe "non-id keys" do
|
325
325
|
it 'should return true if both individuals are following each other' do
|
326
|
-
@usera.follow(@admin)
|
327
|
-
@admin.follow(@usera)
|
326
|
+
@usera.follow!(@admin)
|
327
|
+
@admin.follow!(@usera)
|
328
328
|
@usera.reciprocated?(@admin).should be_true
|
329
329
|
end
|
330
330
|
|
331
331
|
it 'should return false if both individuals are not following each other' do
|
332
|
-
@usera.follow(@admin)
|
332
|
+
@usera.follow!(@admin)
|
333
333
|
@usera.reciprocated?(@admin).should be_false
|
334
334
|
end
|
335
335
|
end
|
@@ -338,24 +338,17 @@ describe ActsAsAmico do
|
|
338
338
|
describe '#following' do
|
339
339
|
it 'should return the correct list' do
|
340
340
|
userc = Factory :user
|
341
|
-
@usera.follow(@userb)
|
342
|
-
@usera.follow(userc)
|
341
|
+
@usera.follow!(@userb)
|
342
|
+
@usera.follow!(userc)
|
343
343
|
@usera.following.should eql(["#{userc.id}", "#{@userb.send(@userb.class.amico_key)}"])
|
344
344
|
@usera.following(:page => 5).should eql(["#{userc.id}", "#{@userb.send(@userb.class.amico_key)}"])
|
345
345
|
end
|
346
346
|
|
347
|
-
it 'should page correctly' do
|
348
|
-
user = add_reciprocal_followers
|
349
|
-
|
350
|
-
user.following(:page => 1, :page_size => 5).size.should be(5)
|
351
|
-
user.following(:page => 1, :page_size => 10).size.should be(10)
|
352
|
-
user.following(:page => 1, :page_size => 25).size.should be(25)
|
353
|
-
end
|
354
347
|
describe "non-id keys" do
|
355
348
|
it 'should return the correct list' do
|
356
349
|
userc = Factory :user
|
357
|
-
@usera.follow(@admin)
|
358
|
-
@usera.follow(userc)
|
350
|
+
@usera.follow!(@admin)
|
351
|
+
@usera.follow!(userc)
|
359
352
|
@usera.following.should =~ ["#{userc.id}", "#{@admin.send(@admin.class.amico_key)}"]
|
360
353
|
@usera.following(:page => 5).should =~ ["#{userc.id}", "#{@admin.send(@admin.class.amico_key)}"]
|
361
354
|
end
|
@@ -365,24 +358,17 @@ describe ActsAsAmico do
|
|
365
358
|
describe '#followers' do
|
366
359
|
it 'should return the correct list' do
|
367
360
|
userc = Factory :user
|
368
|
-
@usera.follow(@userb)
|
369
|
-
userc.follow(@userb)
|
361
|
+
@usera.follow!(@userb)
|
362
|
+
userc.follow!(@userb)
|
370
363
|
@userb.followers.should eql(["#{userc.id}", "#{@usera.send(@usera.class.amico_key)}"])
|
371
364
|
@userb.followers(:page => 5).should eql(["#{userc.id}", "#{@usera.send(@usera.class.amico_key)}"])
|
372
365
|
end
|
373
366
|
|
374
|
-
it 'should page correctly' do
|
375
|
-
user = add_reciprocal_followers
|
376
|
-
|
377
|
-
user.followers(:page => 1, :page_size => 5).size.should be(5)
|
378
|
-
user.followers(:page => 1, :page_size => 10).size.should be(10)
|
379
|
-
user.followers(:page => 1, :page_size => 25).size.should be(25)
|
380
|
-
end
|
381
367
|
describe "non-id keys" do
|
382
368
|
it 'should return the correct list' do
|
383
369
|
userc = Factory :user
|
384
|
-
@usera.follow(@admin)
|
385
|
-
userc.follow(@admin)
|
370
|
+
@usera.follow!(@admin)
|
371
|
+
userc.follow!(@admin)
|
386
372
|
@admin.followers.should eql(["#{userc.id}", "#{@usera.send(@usera.class.amico_key)}"])
|
387
373
|
@admin.followers(:page => 5).should eql(["#{userc.id}", "#{@usera.send(@usera.class.amico_key)}"])
|
388
374
|
end
|
@@ -392,24 +378,17 @@ describe ActsAsAmico do
|
|
392
378
|
describe '#blocked' do
|
393
379
|
it 'should return the correct list' do
|
394
380
|
userc = Factory :user
|
395
|
-
@usera.block(@userb)
|
396
|
-
@usera.block(userc)
|
381
|
+
@usera.block!(@userb)
|
382
|
+
@usera.block!(userc)
|
397
383
|
@usera.blocked.should eql(["#{userc.id}", "#{@userb.send(@userb.class.amico_key)}"])
|
398
384
|
@usera.blocked(:page => 5).should eql(["#{userc.id}", "#{@userb.send(@userb.class.amico_key)}"])
|
399
385
|
end
|
400
386
|
|
401
|
-
it 'should page correctly' do
|
402
|
-
user = add_reciprocal_followers(26, true)
|
403
|
-
|
404
|
-
user.blocked(:page => 1, :page_size => 5).size.should be(5)
|
405
|
-
user.blocked(:page => 1, :page_size => 10).size.should be(10)
|
406
|
-
user.blocked(:page => 1, :page_size => 25).size.should be(25)
|
407
|
-
end
|
408
387
|
describe "non-id keys" do
|
409
388
|
it 'should return the correct list' do
|
410
389
|
userc = Factory :user
|
411
|
-
@usera.block(@admin)
|
412
|
-
@usera.block(userc)
|
390
|
+
@usera.block!(@admin)
|
391
|
+
@usera.block!(userc)
|
413
392
|
@usera.blocked.should =~ ["#{userc.id}", "#{@admin.send(@admin.class.amico_key)}"]
|
414
393
|
@usera.blocked(:page => 5).should =~ ["#{userc.id}", "#{@admin.send(@admin.class.amico_key)}"]
|
415
394
|
end
|
@@ -418,23 +397,16 @@ describe ActsAsAmico do
|
|
418
397
|
|
419
398
|
describe '#reciprocated' do
|
420
399
|
it 'should return the correct list' do
|
421
|
-
@usera.follow(@userb)
|
422
|
-
@userb.follow(@usera)
|
400
|
+
@usera.follow!(@userb)
|
401
|
+
@userb.follow!(@usera)
|
423
402
|
@usera.reciprocated.should eql(["#{@userb.send(@userb.class.amico_key)}"])
|
424
403
|
@userb.reciprocated.should eql(["#{@usera.send(@usera.class.amico_key)}"])
|
425
404
|
end
|
426
405
|
|
427
|
-
it 'should page correctly' do
|
428
|
-
user = add_reciprocal_followers
|
429
|
-
|
430
|
-
user.reciprocated(:page => 1, :page_size => 5).size.should be(5)
|
431
|
-
user.reciprocated(:page => 1, :page_size => 10).size.should be(10)
|
432
|
-
user.reciprocated(:page => 1, :page_size => 25).size.should be(25)
|
433
|
-
end
|
434
406
|
describe "non-id keys" do
|
435
407
|
it 'should return the correct list' do
|
436
|
-
@usera.follow(@admin)
|
437
|
-
@admin.follow(@usera)
|
408
|
+
@usera.follow!(@admin)
|
409
|
+
@admin.follow!(@usera)
|
438
410
|
@usera.reciprocated.should eql(["#{@admin.send(@admin.class.amico_key)}"])
|
439
411
|
@admin.reciprocated.should eql(["#{@usera.send(@usera.class.amico_key)}"])
|
440
412
|
end
|
@@ -443,33 +415,33 @@ describe ActsAsAmico do
|
|
443
415
|
|
444
416
|
describe '#following_count' do
|
445
417
|
it 'should return the correct count' do
|
446
|
-
@usera.follow(@userb)
|
418
|
+
@usera.follow!(@userb)
|
447
419
|
@usera.following_count.should be(1)
|
448
420
|
end
|
449
421
|
it 'should return the correct count for non-id keys' do
|
450
|
-
@usera.follow(@admin)
|
422
|
+
@usera.follow!(@admin)
|
451
423
|
@usera.following_count.should be(1)
|
452
424
|
end
|
453
425
|
end
|
454
426
|
|
455
427
|
describe '#followers_count' do
|
456
428
|
it 'should return the correct count' do
|
457
|
-
@usera.follow(@userb)
|
429
|
+
@usera.follow!(@userb)
|
458
430
|
@userb.followers_count.should be(1)
|
459
431
|
end
|
460
432
|
it 'should return the correct count for non-id keys' do
|
461
|
-
@usera.follow(@admin)
|
433
|
+
@usera.follow!(@admin)
|
462
434
|
@admin.followers_count.should be(1)
|
463
435
|
end
|
464
436
|
end
|
465
437
|
|
466
438
|
describe '#blocked_count' do
|
467
439
|
it 'should return the correct count' do
|
468
|
-
@usera.block(@userb)
|
440
|
+
@usera.block!(@userb)
|
469
441
|
@usera.blocked_count.should be(1)
|
470
442
|
end
|
471
443
|
it 'should return the correct count for non-id keys' do
|
472
|
-
@usera.block(@admin)
|
444
|
+
@usera.block!(@admin)
|
473
445
|
@usera.blocked_count.should be(1)
|
474
446
|
end
|
475
447
|
end
|
@@ -478,21 +450,21 @@ describe ActsAsAmico do
|
|
478
450
|
it 'should return the correct count' do
|
479
451
|
userc = Factory :user
|
480
452
|
userd = Factory :user
|
481
|
-
@usera.follow(@userb)
|
482
|
-
@userb.follow(@usera)
|
483
|
-
@usera.follow(userc)
|
484
|
-
userc.follow(@usera)
|
485
|
-
@usera.follow(userd)
|
453
|
+
@usera.follow!(@userb)
|
454
|
+
@userb.follow!(@usera)
|
455
|
+
@usera.follow!(userc)
|
456
|
+
userc.follow!(@usera)
|
457
|
+
@usera.follow!(userd)
|
486
458
|
@usera.reciprocated_count.should be(2)
|
487
459
|
end
|
488
460
|
it 'should return the correct count for non-id keys' do
|
489
461
|
userc = Factory :user
|
490
462
|
userd = Factory :user
|
491
|
-
@usera.follow(@admin)
|
492
|
-
@admin.follow(@usera)
|
493
|
-
@usera.follow(userc)
|
494
|
-
userc.follow(@usera)
|
495
|
-
@usera.follow(userd)
|
463
|
+
@usera.follow!(@admin)
|
464
|
+
@admin.follow!(@usera)
|
465
|
+
@usera.follow!(userc)
|
466
|
+
userc.follow!(@usera)
|
467
|
+
@usera.follow!(userd)
|
496
468
|
@usera.reciprocated_count.should be(2)
|
497
469
|
end
|
498
470
|
end
|
@@ -508,7 +480,7 @@ describe ActsAsAmico do
|
|
508
480
|
|
509
481
|
describe '#follow' do
|
510
482
|
it 'should allow you to follow but the relationship is initially pending' do
|
511
|
-
@usera.follow(@userb)
|
483
|
+
@usera.follow!(@userb)
|
512
484
|
|
513
485
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(0)
|
514
486
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.followers_key}:#{Amico.default_scope_key}:#{@userb.send(@userb.class.amico_key)}").should be(0)
|
@@ -516,13 +488,13 @@ describe ActsAsAmico do
|
|
516
488
|
end
|
517
489
|
|
518
490
|
it 'should remove the pending relationship if you have a pending follow, but you unfollow' do
|
519
|
-
@usera.follow(@userb)
|
491
|
+
@usera.follow!(@userb)
|
520
492
|
|
521
493
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(0)
|
522
494
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.followers_key}:#{Amico.default_scope_key}:#{@userb.send(@userb.class.amico_key)}").should be(0)
|
523
495
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.pending_key}:#{Amico.default_scope_key}:#{@userb.send(@userb.class.amico_key)}").should be(1)
|
524
496
|
|
525
|
-
@usera.unfollow(@userb)
|
497
|
+
@usera.unfollow!(@userb)
|
526
498
|
|
527
499
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.following_key}:#{Amico.default_scope_key}:#{@usera.send(@usera.class.amico_key)}").should be(0)
|
528
500
|
Amico.redis.zcard("#{Amico.namespace}:#{Amico.followers_key}:#{Amico.default_scope_key}:#{@userb.send(@userb.class.amico_key)}").should be(0)
|
@@ -531,10 +503,10 @@ describe ActsAsAmico do
|
|
531
503
|
|
532
504
|
describe 'removing the pending relationship and add to following and followers if #accept is called' do
|
533
505
|
it "should work with non-bang-named methods" do
|
534
|
-
@usera.follow(@userb)
|
506
|
+
@usera.follow!(@userb)
|
535
507
|
@usera.pending?(@userb).should be_true
|
536
508
|
|
537
|
-
@usera.accept(@userb)
|
509
|
+
@usera.accept!(@userb)
|
538
510
|
|
539
511
|
@usera.pending?(@userb).should be_false
|
540
512
|
@usera.following?(@userb).should be_true
|
@@ -558,12 +530,12 @@ describe ActsAsAmico do
|
|
558
530
|
|
559
531
|
describe 'removing the pending relationship and add to following and followers if #accept is called and add to reciprocated relationship' do
|
560
532
|
it "should work with non-bang-named methods" do
|
561
|
-
@usera.follow(@userb)
|
562
|
-
@userb.follow(@usera)
|
533
|
+
@usera.follow!(@userb)
|
534
|
+
@userb.follow!(@usera)
|
563
535
|
@usera.pending?(@userb).should be_true
|
564
536
|
@userb.pending?(@usera).should be_true
|
565
537
|
|
566
|
-
@usera.accept(@userb)
|
538
|
+
@usera.accept!(@userb)
|
567
539
|
|
568
540
|
@usera.pending?(@userb).should be_false
|
569
541
|
@userb.pending?(@usera).should be_true
|
@@ -572,7 +544,7 @@ describe ActsAsAmico do
|
|
572
544
|
@userb.follower?(@usera).should be_true
|
573
545
|
@usera.follower?(@userb).should be_false
|
574
546
|
|
575
|
-
@userb.accept(@usera)
|
547
|
+
@userb.accept!(@usera)
|
576
548
|
|
577
549
|
@usera.pending?(@userb).should be_false
|
578
550
|
@userb.pending?(@usera).should be_false
|
@@ -612,9 +584,9 @@ describe ActsAsAmico do
|
|
612
584
|
|
613
585
|
describe '#block' do
|
614
586
|
it 'should remove the pending relationship if you block someone' do
|
615
|
-
@userb.follow(@usera)
|
587
|
+
@userb.follow!(@usera)
|
616
588
|
@userb.pending?(@usera).should be_true
|
617
|
-
@usera.block(@userb)
|
589
|
+
@usera.block!(@userb)
|
618
590
|
@userb.pending?(@usera).should be_false
|
619
591
|
@usera.blocked?(@userb).should be_true
|
620
592
|
end
|
@@ -622,77 +594,44 @@ describe ActsAsAmico do
|
|
622
594
|
|
623
595
|
describe '#pending' do
|
624
596
|
it 'should return the correct list' do
|
625
|
-
@usera.follow(@userb)
|
626
|
-
@userb.follow(@usera)
|
597
|
+
@usera.follow!(@userb)
|
598
|
+
@userb.follow!(@usera)
|
627
599
|
@usera.pending.should eql(["#{@userb.send(@userb.class.amico_key)}"])
|
628
600
|
@userb.pending.should eql(["#{@usera.send(@usera.class.amico_key)}"])
|
629
601
|
end
|
630
602
|
|
631
|
-
it 'should page correctly' do
|
632
|
-
user = add_reciprocal_followers
|
633
|
-
|
634
|
-
user.pending(:page => 1, :page_size => 5).size.should be(5)
|
635
|
-
user.pending(:page => 1, :page_size => 10).size.should be(10)
|
636
|
-
user.pending(:page => 1, :page_size => 25).size.should be(25)
|
637
|
-
end
|
638
603
|
end
|
639
604
|
|
640
605
|
describe '#pending_count' do
|
641
606
|
it 'should return the correct count' do
|
642
607
|
userc = Factory :user
|
643
608
|
userd = Factory :user
|
644
|
-
@usera.follow(@userb)
|
645
|
-
@userb.follow(@usera)
|
646
|
-
@usera.follow(userc)
|
647
|
-
userc.follow(@usera)
|
648
|
-
@usera.follow(userd)
|
609
|
+
@usera.follow!(@userb)
|
610
|
+
@userb.follow!(@usera)
|
611
|
+
@usera.follow!(userc)
|
612
|
+
userc.follow!(@usera)
|
613
|
+
@usera.follow!(userd)
|
649
614
|
@usera.pending_count.should be(2)
|
650
615
|
end
|
651
616
|
end
|
652
617
|
|
653
|
-
describe '#pending_page_count' do
|
654
|
-
it 'should return the correct count' do
|
655
|
-
user = add_reciprocal_followers
|
656
|
-
|
657
|
-
user.pending_page_count.should be(2)
|
658
|
-
user.pending_page_count( 10).should be(3)
|
659
|
-
user.pending_page_count( 5).should be(6)
|
660
|
-
user.pending_page_count(2).should be(13)
|
661
|
-
end
|
662
|
-
end
|
663
618
|
end
|
664
619
|
|
665
620
|
describe 'scope' do
|
666
621
|
it 'should allow you to scope a call to follow a different thing' do
|
667
622
|
Amico.default_scope_key = 'user'
|
668
|
-
@usera.follow(@userb, 'user')
|
669
|
-
@usera.following?(@userb).should be_true
|
670
|
-
@usera.following?(@userb, 'user').should be_true
|
623
|
+
@usera.follow!(@userb, :scope => 'user')
|
624
|
+
@usera.following?(@userb, :scope => 'user').should be_true
|
625
|
+
@usera.following?(@userb, :scope => 'user').should be_true
|
671
626
|
@usera.following.should eql(["#{@userb.send(@userb.class.amico_key)}"])
|
672
|
-
@usera.following(
|
673
|
-
@usera.following?(@userb, 'project').should be_false
|
674
|
-
@usera.follow(@userb, 'project')
|
675
|
-
@usera.following?(@userb, 'project').should be_true
|
676
|
-
@usera.following(
|
627
|
+
@usera.following(:page_size => Amico.page_size, :page => 1, :scope => 'user').should eql(["#{@userb.send(@userb.class.amico_key)}"])
|
628
|
+
@usera.following?(@userb, :scope => 'project').should be_false
|
629
|
+
@usera.follow!(@userb, :scope => 'project')
|
630
|
+
@usera.following?(@userb, :scope => 'project').should be_true
|
631
|
+
@usera.following( :page_size => Amico.page_size, :page => 1, :scope => 'project').should eql(["#{@userb.send(@userb.class.amico_key)}"])
|
677
632
|
end
|
678
633
|
end
|
679
634
|
|
680
635
|
private
|
681
636
|
|
682
|
-
def add_reciprocal_followers(count = 26, block_relationship = false)
|
683
|
-
outer_user = nil
|
684
|
-
1.upto(count) do
|
685
|
-
outer_user = Factory :user
|
686
|
-
1.upto(count) do
|
687
|
-
inner_user = Factory :user
|
688
|
-
outer_user.follow! inner_user
|
689
|
-
inner_user.follow! outer_user
|
690
|
-
if block_relationship
|
691
|
-
outer_user.block! inner_user
|
692
|
-
inner_user.block! outer_user
|
693
|
-
end
|
694
|
-
end
|
695
|
-
end
|
696
|
-
outer_user
|
697
|
-
end
|
698
637
|
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ActsAsAmico do
|
4
|
+
|
5
|
+
describe "non-pending" do
|
6
|
+
before :each do
|
7
|
+
@user = add_reciprocal_followers
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should page #following correctly' do
|
11
|
+
@user.following(:page => 1, :page_size => 5).size.should be(5)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should page #following correctly' do
|
15
|
+
@user.followers(:page => 1, :page_size => 5).size.should be(5)
|
16
|
+
end
|
17
|
+
it 'should page #reciprocated correctly' do
|
18
|
+
@user.reciprocated(:page => 1, :page_size => 5).size.should be(5)
|
19
|
+
end
|
20
|
+
it "should return all following" do
|
21
|
+
@user.get_all(:following).size.should be(6)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "pending operations" do
|
26
|
+
before :each do
|
27
|
+
Amico.pending_follow = true
|
28
|
+
@user = add_reciprocal_followers
|
29
|
+
end
|
30
|
+
after :all do
|
31
|
+
Amico.pending_follow = false
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should page correctly' do
|
35
|
+
@user.pending(:page => 1, :page_size => 5).size.should be(5)
|
36
|
+
end
|
37
|
+
it 'should return the correct count' do
|
38
|
+
@user.pending_page_count.should be(1)
|
39
|
+
@user.pending_page_count(2).should be(3)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "pending operations" do
|
44
|
+
before :each do
|
45
|
+
@user = add_reciprocal_followers 6, true
|
46
|
+
Amico.pending_follow = true
|
47
|
+
end
|
48
|
+
after :all do
|
49
|
+
Amico.pending_follow = false
|
50
|
+
end
|
51
|
+
it 'should page #blocked correctly' do
|
52
|
+
@user.blocked(:page => 1, :page_size => 5).size.should be(5)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def add_reciprocal_followers(count = 6, block_relationship = false)
|
59
|
+
user = Factory :user
|
60
|
+
1.upto(count) do
|
61
|
+
inner_user = Factory :user
|
62
|
+
user.follow! inner_user
|
63
|
+
inner_user.follow! user
|
64
|
+
if block_relationship
|
65
|
+
user.block! inner_user
|
66
|
+
inner_user.block! user
|
67
|
+
end
|
68
|
+
end
|
69
|
+
user
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_amico
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: redis
|
16
|
-
requirement: &
|
16
|
+
requirement: &70186816397260 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70186816397260
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: amico
|
27
|
-
requirement: &
|
27
|
+
requirement: &70186816395200 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70186816395200
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rails
|
38
|
-
requirement: &
|
38
|
+
requirement: &70186816394620 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 3.1.1
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70186816394620
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec-rails
|
49
|
-
requirement: &
|
49
|
+
requirement: &70186816393840 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70186816393840
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: sqlite3
|
60
|
-
requirement: &
|
60
|
+
requirement: &70186816391700 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70186816391700
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: factory_girl_rails
|
71
|
-
requirement: &
|
71
|
+
requirement: &70186816390440 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70186816390440
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: fakeweb
|
82
|
-
requirement: &
|
82
|
+
requirement: &70186816406200 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70186816406200
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: uuidtools
|
93
|
-
requirement: &
|
93
|
+
requirement: &70186816405520 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70186816405520
|
102
102
|
description: Rails injectable Relationships (e.g. friendships) backed by Redis
|
103
103
|
email:
|
104
104
|
- mail@johnmetta.com
|
@@ -166,6 +166,7 @@ files:
|
|
166
166
|
- spec/dummy/script/rails
|
167
167
|
- spec/factories/people.rb
|
168
168
|
- spec/factories/stuff.rb
|
169
|
+
- spec/reciprocal_followers.rb
|
169
170
|
- spec/spec_helper.rb
|
170
171
|
homepage: https://github.com/mettadore/acts_as_amico
|
171
172
|
licenses: []
|
@@ -238,4 +239,5 @@ test_files:
|
|
238
239
|
- spec/dummy/script/rails
|
239
240
|
- spec/factories/people.rb
|
240
241
|
- spec/factories/stuff.rb
|
242
|
+
- spec/reciprocal_followers.rb
|
241
243
|
- spec/spec_helper.rb
|