friendis 0.0.3 → 0.0.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.
- checksums.yaml +4 -4
- data/lib/friendis/friendable.rb +22 -23
- data/lib/friendis/version.rb +1 -1
- data/spec/lib/friendable_spec.rb +24 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 356a53acac2adc1dd9b0c89cedb8b96c3da62591
|
4
|
+
data.tar.gz: 134819bde4df5bde734e1286e6da35b4f3616615
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1039c86f859140f530a4902b3441bc49306b528f9804d7abdda5dbf2f5ad2c191706dd0433d793b4c4eaaf365461266ca90761c3d94a7d153266963bf9ac61b7
|
7
|
+
data.tar.gz: dd91a510ce170f278663e858d841313540464f907a8cb6de16bfc0524e97dbb2a60389df65e9be61d4582ef354f6bf058fa4d3f30c431f68e4784449c816eb1d
|
data/lib/friendis/friendable.rb
CHANGED
@@ -15,7 +15,7 @@ module Friendis
|
|
15
15
|
end
|
16
16
|
|
17
17
|
module ClassMethods
|
18
|
-
|
18
|
+
|
19
19
|
# Mark the list of fields to track in redis for fast access.
|
20
20
|
def friend_this(options = {})
|
21
21
|
configuration = {
|
@@ -37,9 +37,9 @@ module Friendis
|
|
37
37
|
|
38
38
|
end
|
39
39
|
|
40
|
-
module InstanceMethods
|
40
|
+
module InstanceMethods
|
41
|
+
|
41
42
|
|
42
|
-
|
43
43
|
|
44
44
|
def get_friendis_meta(uuid = nil)
|
45
45
|
Friendis.redis.hgetall friendis_meta_key(uuid)
|
@@ -53,31 +53,26 @@ module Friendis
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def approve_friend_request(friend)
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
Friendis.redis.
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
Friendis.redis.sadd friend.friendis_my_friends_key, self.id.to_s
|
64
|
-
end
|
65
|
-
return true
|
56
|
+
return false unless has_friend_request_from?(friend)
|
57
|
+
|
58
|
+
Friendis.redis.multi do
|
59
|
+
Friendis.redis.srem friend.friendis_outgoing_friend_requests_key, self.id.to_s
|
60
|
+
Friendis.redis.srem friendis_incoming_friend_requests_key, friend.id.to_s
|
61
|
+
Friendis.redis.sadd friendis_my_friends_key, friend.id.to_s
|
62
|
+
Friendis.redis.sadd friend.friendis_my_friends_key, self.id.to_s
|
66
63
|
end
|
64
|
+
true
|
67
65
|
end
|
68
66
|
|
69
67
|
def ignore_friend_request(friend)
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
Friendis.redis.multi do
|
77
|
-
Friendis.redis.srem friendis_incoming_friend_requests_key, friend.id.to_s
|
78
|
-
end
|
79
|
-
return true
|
68
|
+
return false unless has_friend_request_from?(friend)
|
69
|
+
|
70
|
+
# Ignoring a friend request, leaves the request in the requester queue, but removes
|
71
|
+
# it from the pending requests list of the recipient.
|
72
|
+
Friendis.redis.multi do
|
73
|
+
Friendis.redis.srem friendis_incoming_friend_requests_key, friend.id.to_s
|
80
74
|
end
|
75
|
+
true
|
81
76
|
end
|
82
77
|
|
83
78
|
def unfriend(friend)
|
@@ -91,6 +86,10 @@ module Friendis
|
|
91
86
|
Friendis.redis.smembers(friendis_my_friends_key).collect {|friend_id| get_friendis_meta(friend_id)}
|
92
87
|
end
|
93
88
|
|
89
|
+
def has_friend_request_from?(friend)
|
90
|
+
Friendis.redis.sismember friendis_incoming_friend_requests_key, friend.id.to_s
|
91
|
+
end
|
92
|
+
|
94
93
|
def is_friends_with?(friend)
|
95
94
|
Friendis.redis.sismember friendis_my_friends_key, friend.id.to_s
|
96
95
|
end
|
data/lib/friendis/version.rb
CHANGED
data/spec/lib/friendable_spec.rb
CHANGED
@@ -117,4 +117,28 @@ describe Friendis::Friendable do
|
|
117
117
|
|
118
118
|
end
|
119
119
|
|
120
|
+
describe "#has_friend_request_from?" do
|
121
|
+
before(:each) do
|
122
|
+
@user1 = User.new(1)
|
123
|
+
@user2 = User.new(2)
|
124
|
+
|
125
|
+
@user1.clear_friendis_data
|
126
|
+
@user2.clear_friendis_data
|
127
|
+
|
128
|
+
@user1.save
|
129
|
+
@user2.save
|
130
|
+
|
131
|
+
@user1.send_friend_request(@user2)
|
132
|
+
end
|
133
|
+
|
134
|
+
it "should return true if a user has request from other" do
|
135
|
+
@user2.has_friend_request_from?(@user1).should be_truthy
|
136
|
+
end
|
137
|
+
|
138
|
+
it "should return false if a user has no request from other" do
|
139
|
+
@user1.has_friend_request_from?(@user2).should be_falsy
|
140
|
+
end
|
141
|
+
|
142
|
+
end
|
143
|
+
|
120
144
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: friendis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elad Meidar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -110,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
110
|
version: '0'
|
111
111
|
requirements: []
|
112
112
|
rubyforge_project:
|
113
|
-
rubygems_version: 2.2.
|
113
|
+
rubygems_version: 2.2.2
|
114
114
|
signing_key:
|
115
115
|
specification_version: 4
|
116
116
|
summary: Friendis implements friendship relationship between objects on Redis
|
@@ -120,3 +120,4 @@ test_files:
|
|
120
120
|
- spec/lib/friendable_spec.rb
|
121
121
|
- spec/models/user.rb
|
122
122
|
- spec/spec_helper.rb
|
123
|
+
has_rdoc:
|