croudia 1.0.7 → 1.0.8
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/croudia/api/friendships.rb +11 -0
- data/lib/croudia/api/utils.rb +24 -0
- data/lib/croudia/user.rb +1 -0
- data/lib/croudia/version.rb +1 -1
- data/spec/croudia/api/friendships_spec.rb +120 -0
- data/spec/fixtures/friendships.json +16 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6faf517b484c015bd638bfb3f87d03dd50058c63
|
4
|
+
data.tar.gz: 4bfa7828051298f954d02bc370c3304ed48ce1a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a032e89cc85042b633bcb00a1c62cd02e3c9240f750322fbed68ad1d7cc4dba30bbf27a530bf2654cb5c5531b5cd45e5f85b1f3d68e75669fdc239700df63796
|
7
|
+
data.tar.gz: aa7fe928f57ca1b93908a3236abf0ff7bf8087987d90140b99fbc96552cb0dc7f96397ec0e676858f6ce916cb269263aa6f200f35916e6969cebe43336fd8549
|
@@ -24,6 +24,17 @@ module Croudia
|
|
24
24
|
resp = post('/friendships/destroy.json', params)
|
25
25
|
Croudia::User.new(resp)
|
26
26
|
end
|
27
|
+
|
28
|
+
# Lookup Friendships
|
29
|
+
#
|
30
|
+
# @param *users [String, Integer, Croudia::User]
|
31
|
+
# @param params [Hash]
|
32
|
+
# @return [Array<Croudia::User>]
|
33
|
+
def friendships(*args)
|
34
|
+
merge_users!(params = {}, args)
|
35
|
+
resp = get('/friendships/lookup.json', params)
|
36
|
+
objects(Croudia::User, resp)
|
37
|
+
end
|
27
38
|
end
|
28
39
|
end
|
29
40
|
end
|
data/lib/croudia/api/utils.rb
CHANGED
@@ -32,6 +32,30 @@ module Croudia
|
|
32
32
|
params
|
33
33
|
end
|
34
34
|
|
35
|
+
def merge_users!(params, users)
|
36
|
+
user_ids = []
|
37
|
+
screen_names = []
|
38
|
+
|
39
|
+
users.each do |user|
|
40
|
+
case user
|
41
|
+
when Hash
|
42
|
+
params.merge!(user)
|
43
|
+
when Integer
|
44
|
+
user_ids << user
|
45
|
+
when String
|
46
|
+
screen_names << user
|
47
|
+
when Croudia::User
|
48
|
+
user_ids << user.id_str
|
49
|
+
else
|
50
|
+
raise ArgumentError, 'invalid user'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
params[:user_id] = user_ids.join(',') unless user_ids.empty?
|
55
|
+
params[:screen_name] = screen_names.join(',') unless screen_names.empty?
|
56
|
+
params
|
57
|
+
end
|
58
|
+
|
35
59
|
def merge_text!(params, text, key=:status)
|
36
60
|
case text
|
37
61
|
when Hash
|
data/lib/croudia/user.rb
CHANGED
data/lib/croudia/version.rb
CHANGED
@@ -84,4 +84,124 @@ describe Croudia::API::Friendships do
|
|
84
84
|
expect(@client.unfollow('wktk')).to be_a Croudia::User
|
85
85
|
end
|
86
86
|
end
|
87
|
+
|
88
|
+
describe '#friendships' do
|
89
|
+
context 'when String is passed' do
|
90
|
+
before do
|
91
|
+
stub_get('/friendships/lookup.json').with(
|
92
|
+
query: {
|
93
|
+
screen_name: 'wktk',
|
94
|
+
}
|
95
|
+
).to_return(
|
96
|
+
body: fixture(:friendships),
|
97
|
+
headers: { content_type: 'application/json; charset=utf-8' }
|
98
|
+
)
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'requests the correct resource' do
|
102
|
+
@client.friendships('wktk')
|
103
|
+
expect(a_get('/friendships/lookup.json').with(
|
104
|
+
query: {
|
105
|
+
screen_name: 'wktk',
|
106
|
+
}
|
107
|
+
)).to have_been_made
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'returns array of Croudia::User' do
|
111
|
+
subject = @client.friendships('wktk')
|
112
|
+
expect(subject).to be_an Array
|
113
|
+
subject.each { |u| expect(u).to be_a Croudia::User }
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
context 'when Integer is passed' do
|
118
|
+
before do
|
119
|
+
stub_get('/friendships/lookup.json').with(
|
120
|
+
query: {
|
121
|
+
user_id: '1234',
|
122
|
+
}
|
123
|
+
).to_return(
|
124
|
+
body: fixture(:friendships),
|
125
|
+
headers: { content_type: 'application/json; charset=utf-8' }
|
126
|
+
)
|
127
|
+
end
|
128
|
+
|
129
|
+
it 'requests the correct resource' do
|
130
|
+
@client.friendships(1234)
|
131
|
+
expect(a_get('/friendships/lookup.json').with(
|
132
|
+
query: {
|
133
|
+
user_id: '1234',
|
134
|
+
}
|
135
|
+
)).to have_been_made
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
context 'when multiple Strings are passed' do
|
140
|
+
before do
|
141
|
+
stub_get('/friendships/lookup.json').with(
|
142
|
+
query: {
|
143
|
+
screen_name: 'wktk,croudia',
|
144
|
+
}
|
145
|
+
).to_return(
|
146
|
+
body: fixture(:friendships),
|
147
|
+
headers: { content_type: 'application/json; charset=utf-8' }
|
148
|
+
)
|
149
|
+
end
|
150
|
+
|
151
|
+
it 'requests the correct resource' do
|
152
|
+
@client.friendships('wktk', 'croudia')
|
153
|
+
expect(a_get('/friendships/lookup.json').with(
|
154
|
+
query: {
|
155
|
+
screen_name: 'wktk,croudia',
|
156
|
+
}
|
157
|
+
)).to have_been_made
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
context 'when multiple Integers are passed' do
|
162
|
+
before do
|
163
|
+
stub_get('/friendships/lookup.json').with(
|
164
|
+
query: {
|
165
|
+
user_id: '1234,4567',
|
166
|
+
}
|
167
|
+
).to_return(
|
168
|
+
body: fixture(:friendships),
|
169
|
+
headers: { content_type: 'application/json; charset=utf-8' }
|
170
|
+
)
|
171
|
+
end
|
172
|
+
|
173
|
+
it 'requests the correct resource' do
|
174
|
+
@client.friendships(1234, 4567)
|
175
|
+
expect(a_get('/friendships/lookup.json').with(
|
176
|
+
query: {
|
177
|
+
user_id: '1234,4567',
|
178
|
+
}
|
179
|
+
)).to have_been_made
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
context 'when multiple String and Integer are passed' do
|
184
|
+
before do
|
185
|
+
stub_get('/friendships/lookup.json').with(
|
186
|
+
query: {
|
187
|
+
user_id: '1234,4567',
|
188
|
+
screen_name: 'wktk,croudia',
|
189
|
+
}
|
190
|
+
).to_return(
|
191
|
+
body: fixture(:friendships),
|
192
|
+
headers: { content_type: 'application/json; charset=utf-8' }
|
193
|
+
)
|
194
|
+
end
|
195
|
+
|
196
|
+
it 'requests the correct resource' do
|
197
|
+
@client.friendships('wktk', 1234, 'croudia', 4567)
|
198
|
+
expect(a_get('/friendships/lookup.json').with(
|
199
|
+
query: {
|
200
|
+
screen_name: 'wktk,croudia',
|
201
|
+
user_id: '1234,4567',
|
202
|
+
}
|
203
|
+
)).to have_been_made
|
204
|
+
end
|
205
|
+
end
|
206
|
+
end
|
87
207
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"connections": ["none"],
|
4
|
+
"id": 2,
|
5
|
+
"id_str": "2",
|
6
|
+
"name": "Croudia",
|
7
|
+
"screen_name": "croudia"
|
8
|
+
},
|
9
|
+
{
|
10
|
+
"connections": ["following", "followed-by"],
|
11
|
+
"id": 1,
|
12
|
+
"id_str": "1",
|
13
|
+
"name": "Pokemishi",
|
14
|
+
"screen_name": "pokemishi"
|
15
|
+
}
|
16
|
+
]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: croudia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- wktk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -148,6 +148,7 @@ files:
|
|
148
148
|
- spec/croudia/user_spec.rb
|
149
149
|
- spec/croudia_spec.rb
|
150
150
|
- spec/fixtures/access_token.json
|
151
|
+
- spec/fixtures/friendships.json
|
151
152
|
- spec/fixtures/secret_mail.json
|
152
153
|
- spec/fixtures/secret_mails.json
|
153
154
|
- spec/fixtures/status.json
|
@@ -196,6 +197,7 @@ test_files:
|
|
196
197
|
- spec/croudia/user_spec.rb
|
197
198
|
- spec/croudia_spec.rb
|
198
199
|
- spec/fixtures/access_token.json
|
200
|
+
- spec/fixtures/friendships.json
|
199
201
|
- spec/fixtures/secret_mail.json
|
200
202
|
- spec/fixtures/secret_mails.json
|
201
203
|
- spec/fixtures/status.json
|