acts_as_amico 0.2.2 → 0.2.4
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/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
|