leaderboard 3.6.0 → 3.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,110 @@
1
+ require 'spec_helper'
2
+ require 'competition_ranking_leaderboard'
3
+
4
+ describe 'CompetitionRankingLeaderboard' do
5
+ before(:each) do
6
+ @redis_connection = Redis.new(:host => "127.0.0.1", :db => 15)
7
+ end
8
+
9
+ after(:each) do
10
+ @redis_connection.flushdb
11
+ @redis_connection.client.disconnect
12
+ end
13
+
14
+ context 'ties' do
15
+ it 'should retrieve the correct rankings for #leaders' do
16
+ leaderboard = CompetitionRankingLeaderboard.new('ties', Leaderboard::DEFAULT_OPTIONS, {:host => "127.0.0.1", :db => 15})
17
+ leaderboard.rank_member('member_1', 50)
18
+ leaderboard.rank_member('member_2', 50)
19
+ leaderboard.rank_member('member_3', 30)
20
+ leaderboard.rank_member('member_4', 30)
21
+ leaderboard.rank_member('member_5', 10)
22
+
23
+ leaderboard.leaders(1).tap do |leaders|
24
+ expect(leaders[0][:rank]).to eq(1)
25
+ expect(leaders[1][:rank]).to eq(1)
26
+ expect(leaders[2][:rank]).to eq(3)
27
+ expect(leaders[3][:rank]).to eq(3)
28
+ expect(leaders[4][:rank]).to eq(5)
29
+ end
30
+
31
+ leaderboard.disconnect
32
+ end
33
+
34
+ it 'should retrieve the correct rankings for #leaders with different page sizes' do
35
+ leaderboard = CompetitionRankingLeaderboard.new('ties', Leaderboard::DEFAULT_OPTIONS, {:host => "127.0.0.1", :db => 15})
36
+ leaderboard.rank_member('member_1', 50)
37
+ leaderboard.rank_member('member_2', 50)
38
+ leaderboard.rank_member('member_6', 50)
39
+ leaderboard.rank_member('member_7', 50)
40
+ leaderboard.rank_member('member_3', 30)
41
+ leaderboard.rank_member('member_4', 30)
42
+ leaderboard.rank_member('member_8', 30)
43
+ leaderboard.rank_member('member_9', 30)
44
+ leaderboard.rank_member('member_5', 10)
45
+ leaderboard.rank_member('member_10', 10)
46
+
47
+ leaderboard.leaders(1, :page_size => 3).tap do |leaders|
48
+ expect(leaders[0][:rank]).to eq(1)
49
+ expect(leaders[1][:rank]).to eq(1)
50
+ expect(leaders[2][:rank]).to eq(1)
51
+ end
52
+
53
+ leaderboard.leaders(2, :page_size => 3).tap do |leaders|
54
+ expect(leaders[0][:rank]).to eq(1)
55
+ expect(leaders[1][:rank]).to eq(5)
56
+ expect(leaders[2][:rank]).to eq(5)
57
+ end
58
+
59
+ leaderboard.disconnect
60
+ end
61
+
62
+ it 'should retrieve the correct rankings for #around_me' do
63
+ leaderboard = CompetitionRankingLeaderboard.new('ties', Leaderboard::DEFAULT_OPTIONS, {:host => "127.0.0.1", :db => 15})
64
+ leaderboard.rank_member('member_1', 50)
65
+ leaderboard.rank_member('member_2', 50)
66
+ leaderboard.rank_member('member_6', 50)
67
+ leaderboard.rank_member('member_7', 50)
68
+ leaderboard.rank_member('member_3', 30)
69
+ leaderboard.rank_member('member_4', 30)
70
+ leaderboard.rank_member('member_8', 30)
71
+ leaderboard.rank_member('member_9', 30)
72
+ leaderboard.rank_member('member_5', 10)
73
+ leaderboard.rank_member('member_10', 10)
74
+
75
+ leaderboard.around_me('member_4').tap do |leaders|
76
+ expect(leaders[0][:rank]).to eq(1)
77
+ expect(leaders[4][:rank]).to eq(5)
78
+ expect(leaders[9][:rank]).to eq(9)
79
+ end
80
+
81
+ leaderboard.disconnect
82
+ end
83
+
84
+ it 'should allow you to retrieve the rank of a single member using #rank_for' do
85
+ leaderboard = CompetitionRankingLeaderboard.new('ties', Leaderboard::DEFAULT_OPTIONS, {:host => "127.0.0.1", :db => 15})
86
+ leaderboard.rank_member('member_1', 50)
87
+ leaderboard.rank_member('member_2', 50)
88
+ leaderboard.rank_member('member_3', 30)
89
+
90
+ expect(leaderboard.rank_for('member_1')).to eq(1)
91
+ expect(leaderboard.rank_for('member_2')).to eq(1)
92
+ expect(leaderboard.rank_for('member_3')).to eq(3)
93
+
94
+ leaderboard.disconnect
95
+ end
96
+
97
+ it 'should allow you to retrieve the score and rank of a single member using #score_and_rank_for' do
98
+ leaderboard = CompetitionRankingLeaderboard.new('ties', Leaderboard::DEFAULT_OPTIONS, {:host => "127.0.0.1", :db => 15})
99
+ leaderboard.rank_member('member_1', 50)
100
+ leaderboard.rank_member('member_2', 50)
101
+ leaderboard.rank_member('member_3', 30)
102
+
103
+ expect(leaderboard.score_and_rank_for('member_1')[:rank]).to eq(1)
104
+ expect(leaderboard.score_and_rank_for('member_2')[:rank]).to eq(1)
105
+ expect(leaderboard.score_and_rank_for('member_3')[:rank]).to eq(3)
106
+
107
+ leaderboard.disconnect
108
+ end
109
+ end
110
+ end
@@ -13,149 +13,149 @@ describe 'Leaderboard' do
13
13
  end
14
14
 
15
15
  it 'should be initialized with defaults' do
16
- @leaderboard.leaderboard_name.should eql('name')
17
- @leaderboard.page_size.should eql(Leaderboard::DEFAULT_PAGE_SIZE)
16
+ expect(@leaderboard.leaderboard_name).to eql('name')
17
+ expect(@leaderboard.page_size).to eql(Leaderboard::DEFAULT_PAGE_SIZE)
18
18
  end
19
19
 
20
20
  it 'should be able to disconnect its connection to Redis' do
21
- @leaderboard.disconnect.should be_nil
21
+ expect(@leaderboard.disconnect).to be_nil
22
22
  end
23
23
 
24
24
  it 'should automatically reconnect to Redis after a disconnect' do
25
- @leaderboard.total_members.should be(0)
25
+ expect(@leaderboard.total_members).to be(0)
26
26
  rank_members_in_leaderboard(5)
27
- @leaderboard.total_members.should be(5)
28
- @leaderboard.disconnect.should be_nil
29
- @leaderboard.total_members.should be(5)
27
+ expect(@leaderboard.total_members).to be(5)
28
+ expect(@leaderboard.disconnect).to be_nil
29
+ expect(@leaderboard.total_members).to be(5)
30
30
  end
31
31
 
32
32
  it 'should set the page size to the default page size if passed an invalid value' do
33
33
  some_leaderboard = Leaderboard.new('name', {:page_size => 0}, {:host => "127.0.0.1", :db => 15})
34
34
 
35
- some_leaderboard.page_size.should be(Leaderboard::DEFAULT_PAGE_SIZE)
35
+ expect(some_leaderboard.page_size).to be(Leaderboard::DEFAULT_PAGE_SIZE)
36
36
  some_leaderboard.disconnect
37
37
  end
38
38
 
39
39
  it 'should allow you to delete a leaderboard' do
40
40
  rank_members_in_leaderboard
41
41
 
42
- @redis_connection.exists('name').should be_true
43
- @redis_connection.exists('name:member_data').should be_true
42
+ expect(@redis_connection.exists('name')).to be_truthy
43
+ expect(@redis_connection.exists('name:member_data')).to be_truthy
44
44
  @leaderboard.delete_leaderboard
45
- @redis_connection.exists('name').should be_false
46
- @redis_connection.exists('name:member_data').should be_false
45
+ expect(@redis_connection.exists('name')).to be_falsey
46
+ expect(@redis_connection.exists('name:member_data')).to be_falsey
47
47
  end
48
48
 
49
49
  it 'should allow you to pass in an existing redis connection in the initializer' do
50
50
  @leaderboard = Leaderboard.new('name', Leaderboard::DEFAULT_OPTIONS, {:redis_connection => @redis_connection})
51
51
  rank_members_in_leaderboard
52
52
 
53
- @redis_connection.info["connected_clients"].to_i.should be(1)
53
+ expect(@redis_connection.info["connected_clients"].to_i).to be(1)
54
54
  end
55
55
 
56
56
  it 'should allow you to rank a member and see that reflected in total members' do
57
57
  @leaderboard.rank_member('member', 1)
58
58
 
59
- @leaderboard.total_members.should be(1)
59
+ expect(@leaderboard.total_members).to be(1)
60
60
  end
61
61
 
62
62
  it 'should return the correct number of members in a given score range' do
63
63
  rank_members_in_leaderboard(5)
64
64
 
65
- @leaderboard.total_members_in_score_range(2, 4).should be(3)
65
+ expect(@leaderboard.total_members_in_score_range(2, 4)).to be(3)
66
66
  end
67
67
 
68
68
  it 'should return the correct rank when calling rank_for' do
69
69
  rank_members_in_leaderboard(5)
70
70
 
71
- @leaderboard.rank_for('member_4').should be(2)
71
+ expect(@leaderboard.rank_for('member_4')).to be(2)
72
72
  end
73
73
 
74
74
  it 'should return the correct score when calling score_for' do
75
75
  rank_members_in_leaderboard(5)
76
76
 
77
- @leaderboard.score_for('member_4').should eql(4.0)
78
- @leaderboard.score_for('jones').should be_nil
77
+ expect(@leaderboard.score_for('member_4')).to eql(4.0)
78
+ expect(@leaderboard.score_for('jones')).to be_nil
79
79
  end
80
80
 
81
81
  it 'should return the correct total pages' do
82
82
  rank_members_in_leaderboard(10)
83
83
 
84
- @leaderboard.total_pages.should be(1)
85
- @leaderboard.total_pages(5).should be(2)
84
+ expect(@leaderboard.total_pages).to be(1)
85
+ expect(@leaderboard.total_pages(5)).to be(2)
86
86
 
87
87
  @redis_connection.flushdb
88
88
 
89
89
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE + 1)
90
90
 
91
- @leaderboard.total_pages.should be(2)
91
+ expect(@leaderboard.total_pages).to be(2)
92
92
  end
93
93
 
94
94
  it 'should return the correct list when calling leaders' do
95
95
  rank_members_in_leaderboard(25)
96
96
 
97
- @leaderboard.total_members.should be(25)
97
+ expect(@leaderboard.total_members).to be(25)
98
98
 
99
99
  leaders = @leaderboard.leaders(1)
100
100
 
101
- leaders.size.should be(25)
102
- leaders[0][:member].should eql 'member_25'
103
- leaders[-2][:member].should eql 'member_2'
104
- leaders[-1][:member].should eql 'member_1'
105
- leaders[-1][:score].to_i.should be(1)
101
+ expect(leaders.size).to be(25)
102
+ expect(leaders[0][:member]).to eql 'member_25'
103
+ expect(leaders[-2][:member]).to eql 'member_2'
104
+ expect(leaders[-1][:member]).to eql 'member_1'
105
+ expect(leaders[-1][:score].to_i).to be(1)
106
106
  end
107
107
 
108
108
  it 'should return the correct list when calling members' do
109
109
  rank_members_in_leaderboard(25)
110
110
 
111
- @leaderboard.total_members.should be(25)
111
+ expect(@leaderboard.total_members).to be(25)
112
112
 
113
113
  members = @leaderboard.members(1)
114
114
 
115
- members.size.should be(25)
116
- members[0][:member].should eql('member_25')
117
- members[-2][:member].should eql('member_2')
118
- members[-1][:member].should eql('member_1')
119
- members[-1][:score].to_i.should be(1)
115
+ expect(members.size).to be(25)
116
+ expect(members[0][:member]).to eql('member_25')
117
+ expect(members[-2][:member]).to eql('member_2')
118
+ expect(members[-1][:member]).to eql('member_1')
119
+ expect(members[-1][:score].to_i).to be(1)
120
120
  end
121
121
 
122
122
  it 'should return the correct number of members when calling leaders with multiple pages' do
123
123
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
124
124
 
125
- @leaderboard.total_members.should be(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
125
+ expect(@leaderboard.total_members).to be(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
126
126
 
127
127
  leaders = @leaderboard.leaders(1)
128
- leaders.size.should be(@leaderboard.page_size)
128
+ expect(leaders.size).to be(@leaderboard.page_size)
129
129
 
130
130
  leaders = @leaderboard.leaders(2)
131
- leaders.size.should be(@leaderboard.page_size)
131
+ expect(leaders.size).to be(@leaderboard.page_size)
132
132
 
133
133
  leaders = @leaderboard.leaders(3)
134
- leaders.size.should be(@leaderboard.page_size)
134
+ expect(leaders.size).to be(@leaderboard.page_size)
135
135
 
136
136
  leaders = @leaderboard.leaders(4)
137
- leaders.size.should be(1)
137
+ expect(leaders.size).to be(1)
138
138
 
139
139
  leaders = @leaderboard.leaders(-5)
140
- leaders.size.should be(@leaderboard.page_size)
140
+ expect(leaders.size).to be(@leaderboard.page_size)
141
141
 
142
142
  leaders = @leaderboard.leaders(10)
143
- leaders.size.should be(1)
143
+ expect(leaders.size).to be(1)
144
144
  end
145
145
 
146
146
  %w(members leaders).each do |method|
147
147
  it "should return the entire leaderboard when you call 'all_#{method}'" do
148
148
  rank_members_in_leaderboard(27)
149
149
 
150
- @leaderboard.total_members.should be(27)
150
+ expect(@leaderboard.total_members).to be(27)
151
151
 
152
152
  members = @leaderboard.send("all_#{method}")
153
153
 
154
- members.size.should be(27)
155
- members[0][:member].should eql('member_27')
156
- members[-2][:member].should eql('member_2')
157
- members[-1][:member].should eql('member_1')
158
- members[-1][:score].to_i.should be(1)
154
+ expect(members.size).to be(27)
155
+ expect(members[0][:member]).to eql('member_27')
156
+ expect(members[-2][:member]).to eql('member_2')
157
+ expect(members[-1][:member]).to eql('member_1')
158
+ expect(members[-1][:score].to_i).to be(1)
159
159
  end
160
160
  end
161
161
 
@@ -165,150 +165,150 @@ describe 'Leaderboard' do
165
165
  members = @leaderboard.members_from_score_range(10, 15)
166
166
 
167
167
  member_15 = {:member => 'member_15', :score => 15.0, :rank => 11}
168
- members[0].should eql(member_15)
168
+ expect(members[0]).to eql(member_15)
169
169
 
170
170
  member_10 = {:member => 'member_10', :score => 10.0, :rank => 16}
171
- members[5].should eql(member_10)
171
+ expect(members[5]).to eql(member_10)
172
172
 
173
173
  members = @leaderboard.members_from_score_range(10, 15, {:with_member_data => true})
174
174
 
175
175
  member_15 = {:member => 'member_15', :rank => 11, :score => 15.0, :member_data => {:member_name => 'Leaderboard member 15'}.to_s}
176
- members[0].should == member_15
176
+ expect(members[0]).to eq(member_15)
177
177
 
178
178
  member_10 = {:member => 'member_10', :rank => 16, :score => 10.0, :member_data => {:member_name => 'Leaderboard member 10'}.to_s}
179
- members[5].should == member_10
179
+ expect(members[5]).to eq(member_10)
180
180
  end
181
181
 
182
182
  it 'should allow you to retrieve leaders with extra data' do
183
183
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE)
184
184
 
185
- @leaderboard.total_members.should be(Leaderboard::DEFAULT_PAGE_SIZE)
185
+ expect(@leaderboard.total_members).to be(Leaderboard::DEFAULT_PAGE_SIZE)
186
186
  leaders = @leaderboard.leaders(1, {:with_member_data => true})
187
187
 
188
188
  member_25 = {:member => 'member_25', :score => 25.0, :rank => 1, :member_data => { :member_name => "Leaderboard member 25" }.to_s }
189
- leaders[0].should == member_25
189
+ expect(leaders[0]).to eq(member_25)
190
190
 
191
191
  member_1 = {:member => 'member_1', :score => 1.0, :rank => 25, :member_data => { :member_name => "Leaderboard member 1" }.to_s }
192
- leaders[24].should == member_1
192
+ expect(leaders[24]).to eq(member_1)
193
193
  end
194
194
 
195
195
  it 'should allow you to retrieve optional member data' do
196
196
  @leaderboard.rank_member('member_id', 1, {'username' => 'member_name', 'other_data_key' => 'other_data_value'})
197
197
 
198
- @leaderboard.member_data_for('unknown_member').should be_nil
199
- @leaderboard.member_data_for('member_id').should == {'username' => 'member_name', 'other_data_key' => 'other_data_value'}.to_s
198
+ expect(@leaderboard.member_data_for('unknown_member')).to be_nil
199
+ expect(@leaderboard.member_data_for('member_id')).to eq({'username' => 'member_name', 'other_data_key' => 'other_data_value'}.to_s)
200
200
  end
201
201
 
202
202
  it 'should allow you to update optional member data' do
203
203
  @leaderboard.rank_member('member_id', 1, {'username' => 'member_name'})
204
204
 
205
- @leaderboard.member_data_for('member_id').should == {'username' => 'member_name'}.to_s
205
+ expect(@leaderboard.member_data_for('member_id')).to eq({'username' => 'member_name'}.to_s)
206
206
  @leaderboard.update_member_data('member_id', {'username' => 'member_name', 'other_data_key' => 'other_data_value'})
207
- @leaderboard.member_data_for('member_id').should == {'username' => 'member_name', 'other_data_key' => 'other_data_value'}.to_s
207
+ expect(@leaderboard.member_data_for('member_id')).to eq({'username' => 'member_name', 'other_data_key' => 'other_data_value'}.to_s)
208
208
  end
209
209
 
210
210
  it 'should allow you to remove optional member data' do
211
211
  @leaderboard.rank_member('member_id', 1, {'username' => 'member_name'})
212
212
 
213
- @leaderboard.member_data_for('member_id').should == {'username' => 'member_name'}.to_s
213
+ expect(@leaderboard.member_data_for('member_id')).to eq({'username' => 'member_name'}.to_s)
214
214
  @leaderboard.remove_member_data('member_id')
215
- @leaderboard.member_data_for('member_id').should be_nil
215
+ expect(@leaderboard.member_data_for('member_id')).to be_nil
216
216
  end
217
217
 
218
218
  it 'should allow you to call leaders with various options that respect the defaults for the options not passed in' do
219
219
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE + 1)
220
220
 
221
221
  leaders = @leaderboard.leaders(1, :page_size => 1)
222
- leaders.size.should be(1)
222
+ expect(leaders.size).to be(1)
223
223
  member_26 = {:member => 'member_26', :score => 26.0, :rank => 1}
224
- leaders[0].should eql(member_26)
224
+ expect(leaders[0]).to eql(member_26)
225
225
  end
226
226
 
227
227
  it 'should return a single member when calling member_at' do
228
228
  rank_members_in_leaderboard(50)
229
- @leaderboard.member_at(1)[:rank].should eql(1)
230
- @leaderboard.member_at(1)[:score].should eql(50.0)
231
- @leaderboard.member_at(26)[:rank].should eql(26)
232
- @leaderboard.member_at(50)[:rank].should eql(50)
233
- @leaderboard.member_at(51).should be_nil
234
- @leaderboard.member_at(1, :with_member_data => true)[:member_data].should == {:member_name => 'Leaderboard member 50'}.to_s
229
+ expect(@leaderboard.member_at(1)[:rank]).to eql(1)
230
+ expect(@leaderboard.member_at(1)[:score]).to eql(50.0)
231
+ expect(@leaderboard.member_at(26)[:rank]).to eql(26)
232
+ expect(@leaderboard.member_at(50)[:rank]).to eql(50)
233
+ expect(@leaderboard.member_at(51)).to be_nil
234
+ expect(@leaderboard.member_at(1, :with_member_data => true)[:member_data]).to eq({:member_name => 'Leaderboard member 50'}.to_s)
235
235
  end
236
236
 
237
237
  it 'should return the correct information when calling around_me' do
238
238
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
239
239
 
240
- @leaderboard.total_members.should be(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
240
+ expect(@leaderboard.total_members).to be(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
241
241
 
242
242
  leaders_around_me = @leaderboard.around_me('member_30')
243
- (leaders_around_me.size / 2).should be(@leaderboard.page_size / 2)
243
+ expect(leaders_around_me.size / 2).to be(@leaderboard.page_size / 2)
244
244
 
245
245
  leaders_around_me = @leaderboard.around_me('member_1')
246
- leaders_around_me.size.should be(@leaderboard.page_size / 2 + 1)
246
+ expect(leaders_around_me.size).to be(@leaderboard.page_size / 2 + 1)
247
247
 
248
248
  leaders_around_me = @leaderboard.around_me('member_76')
249
- (leaders_around_me.size / 2).should be(@leaderboard.page_size / 2)
249
+ expect(leaders_around_me.size / 2).to be(@leaderboard.page_size / 2)
250
250
  end
251
251
 
252
252
  it 'should return the correct information when calling ranked_in_list' do
253
253
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE)
254
254
 
255
- @leaderboard.total_members.should be(Leaderboard::DEFAULT_PAGE_SIZE)
255
+ expect(@leaderboard.total_members).to be(Leaderboard::DEFAULT_PAGE_SIZE)
256
256
 
257
257
  members = ['member_1', 'member_5', 'member_10']
258
258
  ranked_members = @leaderboard.ranked_in_list(members, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS)
259
259
 
260
- ranked_members.size.should be(3)
260
+ expect(ranked_members.size).to be(3)
261
261
 
262
- ranked_members[0][:rank].should be(25)
263
- ranked_members[0][:score].should eql(1.0)
262
+ expect(ranked_members[0][:rank]).to be(25)
263
+ expect(ranked_members[0][:score]).to eql(1.0)
264
264
 
265
- ranked_members[1][:rank].should be(21)
266
- ranked_members[1][:score].should eql(5.0)
265
+ expect(ranked_members[1][:rank]).to be(21)
266
+ expect(ranked_members[1][:score]).to eql(5.0)
267
267
 
268
- ranked_members[2][:rank].should be(16)
269
- ranked_members[2][:score].should eql(10.0)
268
+ expect(ranked_members[2][:rank]).to be(16)
269
+ expect(ranked_members[2][:score]).to eql(10.0)
270
270
  end
271
271
 
272
272
  it 'should return the correct information when calling ranked_in_list without scores' do
273
273
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE)
274
274
 
275
- @leaderboard.total_members.should be(Leaderboard::DEFAULT_PAGE_SIZE)
275
+ expect(@leaderboard.total_members).to be(Leaderboard::DEFAULT_PAGE_SIZE)
276
276
 
277
277
  members = ['member_1', 'member_5', 'member_10']
278
278
  ranked_members = @leaderboard.ranked_in_list(members, {:with_rank => true})
279
- ranked_members.size.should be(3)
280
- ranked_members[0][:rank].should be(25)
281
- ranked_members[1][:rank].should be(21)
282
- ranked_members[2][:rank].should be(16)
279
+ expect(ranked_members.size).to be(3)
280
+ expect(ranked_members[0][:rank]).to be(25)
281
+ expect(ranked_members[1][:rank]).to be(21)
282
+ expect(ranked_members[2][:rank]).to be(16)
283
283
  end
284
284
 
285
285
  it 'should allow you to remove members' do
286
286
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE)
287
287
 
288
- @leaderboard.total_members.should be(Leaderboard::DEFAULT_PAGE_SIZE)
288
+ expect(@leaderboard.total_members).to be(Leaderboard::DEFAULT_PAGE_SIZE)
289
289
 
290
290
  @leaderboard.remove_member('member_1')
291
291
 
292
- @leaderboard.total_members.should be(Leaderboard::DEFAULT_PAGE_SIZE - 1)
293
- @leaderboard.rank_for('member_1').should be_nil
292
+ expect(@leaderboard.total_members).to be(Leaderboard::DEFAULT_PAGE_SIZE - 1)
293
+ expect(@leaderboard.rank_for('member_1')).to be_nil
294
294
  end
295
295
 
296
296
  it 'should allow you to change the score for a member' do
297
297
  @leaderboard.rank_member('member_1', 5)
298
- @leaderboard.score_for('member_1').should eql(5.0)
298
+ expect(@leaderboard.score_for('member_1')).to eql(5.0)
299
299
 
300
300
  @leaderboard.change_score_for('member_1', 5)
301
- @leaderboard.score_for('member_1').should eql(10.0)
301
+ expect(@leaderboard.score_for('member_1')).to eql(10.0)
302
302
 
303
303
  @leaderboard.change_score_for('member_1', -5)
304
- @leaderboard.score_for('member_1').should eql(5.0)
304
+ expect(@leaderboard.score_for('member_1')).to eql(5.0)
305
305
  end
306
306
 
307
307
  it 'should allow you to check if a member exists' do
308
308
  @leaderboard.rank_member('member_1', 10)
309
309
 
310
- @leaderboard.check_member?('member_1').should be_true
311
- @leaderboard.check_member?('member_2').should be_false
310
+ expect(@leaderboard.check_member?('member_1')).to be_truthy
311
+ expect(@leaderboard.check_member?('member_2')).to be_falsey
312
312
  end
313
313
 
314
314
  it 'should allow you to change the page size and have that reflected in the size of the result set' do
@@ -316,58 +316,58 @@ describe 'Leaderboard' do
316
316
 
317
317
  @leaderboard.page_size = 5
318
318
 
319
- @leaderboard.total_pages.should be(5)
320
- @leaderboard.leaders(1).size.should be(5)
319
+ expect(@leaderboard.total_pages).to be(5)
320
+ expect(@leaderboard.leaders(1).size).to be(5)
321
321
  end
322
322
 
323
323
  it 'should not allow you to set the page size to an invalid page size' do
324
324
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE)
325
325
 
326
326
  @leaderboard.page_size = 0
327
- @leaderboard.total_pages.should be(1)
328
- @leaderboard.leaders(1).size.should be(Leaderboard::DEFAULT_PAGE_SIZE)
327
+ expect(@leaderboard.total_pages).to be(1)
328
+ expect(@leaderboard.leaders(1).size).to be(Leaderboard::DEFAULT_PAGE_SIZE)
329
329
  end
330
330
 
331
331
  it 'should return the correct information when calling score_and_rank_for' do
332
332
  rank_members_in_leaderboard
333
333
 
334
334
  data = @leaderboard.score_and_rank_for('member_1')
335
- data[:member].should eql('member_1')
336
- data[:score].should eql(1.0)
337
- data[:rank].should eql(5)
335
+ expect(data[:member]).to eql('member_1')
336
+ expect(data[:score]).to eql(1.0)
337
+ expect(data[:rank]).to eql(5)
338
338
  end
339
339
 
340
340
  it 'should allow you to remove members in a given score range' do
341
341
  rank_members_in_leaderboard
342
342
 
343
- @leaderboard.total_members.should be(5)
343
+ expect(@leaderboard.total_members).to be(5)
344
344
 
345
345
  @leaderboard.rank_member('cheater_1', 100)
346
346
  @leaderboard.rank_member('cheater_2', 101)
347
347
  @leaderboard.rank_member('cheater_3', 102)
348
348
 
349
- @leaderboard.total_members.should be(8)
349
+ expect(@leaderboard.total_members).to be(8)
350
350
 
351
351
  @leaderboard.remove_members_in_score_range(100, 102)
352
352
 
353
- @leaderboard.total_members.should be(5)
353
+ expect(@leaderboard.total_members).to be(5)
354
354
 
355
355
  leaders = @leaderboard.leaders(1)
356
356
  leaders.each do |leader|
357
- leader[:score].should be < 100
357
+ expect(leader[:score]).to be < 100
358
358
  end
359
359
  end
360
360
 
361
361
  it 'should allow you to remove members outside a given rank' do
362
362
  rank_members_in_leaderboard
363
363
 
364
- @leaderboard.total_members.should be(5)
365
- @leaderboard.remove_members_outside_rank(3).should be(2)
364
+ expect(@leaderboard.total_members).to be(5)
365
+ expect(@leaderboard.remove_members_outside_rank(3)).to be(2)
366
366
 
367
367
  leaders = @leaderboard.leaders(1)
368
- leaders.size.should be(3)
369
- leaders[0][:member].should == 'member_5'
370
- leaders[2][:member].should == 'member_3'
368
+ expect(leaders.size).to be(3)
369
+ expect(leaders[0][:member]).to eq('member_5')
370
+ expect(leaders[2][:member]).to eq('member_3')
371
371
  end
372
372
 
373
373
  it 'should allow you to merge leaderboards' do
@@ -381,15 +381,15 @@ describe 'Leaderboard' do
381
381
  bar.rank_member('bar_3', 5)
382
382
 
383
383
  foobar_keys = foo.merge_leaderboards('foobar', ['bar'])
384
- foobar_keys.should be(5)
384
+ expect(foobar_keys).to be(5)
385
385
 
386
386
  foobar = Leaderboard.new('foobar', Leaderboard::DEFAULT_OPTIONS, {:host => "127.0.0.1", :db => 15})
387
- foobar.total_members.should be(5)
387
+ expect(foobar.total_members).to be(5)
388
388
 
389
389
  first_leader_in_foobar = foobar.leaders(1).first
390
- first_leader_in_foobar[:rank].should eql(1)
391
- first_leader_in_foobar[:member].should eql('bar_3')
392
- first_leader_in_foobar[:score].should eql(5.0)
390
+ expect(first_leader_in_foobar[:rank]).to eql(1)
391
+ expect(first_leader_in_foobar[:member]).to eql('bar_3')
392
+ expect(first_leader_in_foobar[:score]).to eql(5.0)
393
393
 
394
394
  foo.disconnect
395
395
  bar.disconnect
@@ -408,15 +408,15 @@ describe 'Leaderboard' do
408
408
  bar.rank_member('bar_3', 5)
409
409
 
410
410
  foobar_keys = foo.intersect_leaderboards('foobar', ['bar'], {:aggregate => :max})
411
- foobar_keys.should be(2)
411
+ expect(foobar_keys).to be(2)
412
412
 
413
413
  foobar = Leaderboard.new('foobar', Leaderboard::DEFAULT_OPTIONS, {:host => "127.0.0.1", :db => 15})
414
- foobar.total_members.should be(2)
414
+ expect(foobar.total_members).to be(2)
415
415
 
416
416
  first_leader_in_foobar = foobar.leaders(1).first
417
- first_leader_in_foobar[:rank].should eql(1)
418
- first_leader_in_foobar[:member].should eql('bar_3')
419
- first_leader_in_foobar[:score].should eql(6.0)
417
+ expect(first_leader_in_foobar[:rank]).to eql(1)
418
+ expect(first_leader_in_foobar[:member]).to eql('bar_3')
419
+ expect(first_leader_in_foobar[:score]).to eql(6.0)
420
420
 
421
421
  foo.disconnect
422
422
  bar.disconnect
@@ -426,82 +426,82 @@ describe 'Leaderboard' do
426
426
  it 'should respect options in the massage_leader_data method' do
427
427
  rank_members_in_leaderboard(25)
428
428
 
429
- @leaderboard.total_members.should be(25)
429
+ expect(@leaderboard.total_members).to be(25)
430
430
 
431
431
  leaders = @leaderboard.leaders(1)
432
- leaders[0][:member].should_not be_nil
433
- leaders[0][:score].should_not be_nil
434
- leaders[0][:rank].should_not be_nil
432
+ expect(leaders[0][:member]).not_to be_nil
433
+ expect(leaders[0][:score]).not_to be_nil
434
+ expect(leaders[0][:rank]).not_to be_nil
435
435
 
436
436
  @leaderboard.page_size = Leaderboard::DEFAULT_PAGE_SIZE
437
437
  leaders = @leaderboard.leaders(1, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS)
438
- leaders[0][:member].should_not be_nil
439
- leaders[0][:score].should_not be_nil
440
- leaders[0][:rank].should_not be_nil
438
+ expect(leaders[0][:member]).not_to be_nil
439
+ expect(leaders[0][:score]).not_to be_nil
440
+ expect(leaders[0][:rank]).not_to be_nil
441
441
 
442
442
  @leaderboard.page_size = 25
443
443
  leaders = @leaderboard.leaders(1, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS)
444
- leaders.size.should be(25)
444
+ expect(leaders.size).to be(25)
445
445
  end
446
446
 
447
447
  it 'should return the correct number of pages when calling total_pages_in page size option' do
448
448
  rank_members_in_leaderboard(25)
449
449
 
450
- @leaderboard.total_pages_in(@leaderboard.leaderboard_name).should be(1)
451
- @leaderboard.total_pages_in(@leaderboard.leaderboard_name, 5).should be(5)
450
+ expect(@leaderboard.total_pages_in(@leaderboard.leaderboard_name)).to be(1)
451
+ expect(@leaderboard.total_pages_in(@leaderboard.leaderboard_name, 5)).to be(5)
452
452
  end
453
453
 
454
454
  it 'should return the correct number of members when calling leaders with a page_size option' do
455
455
  rank_members_in_leaderboard(25)
456
456
 
457
- @leaderboard.leaders(1, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS.merge({:page_size => 5})).size.should be(5)
458
- @leaderboard.leaders(1, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS.merge({:page_size => 10})).size.should be(10)
459
- @leaderboard.leaders(2, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS.merge({:page_size => 10})).size.should be(10)
460
- @leaderboard.leaders(3, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS.merge({:page_size => 10})).size.should be(5)
457
+ expect(@leaderboard.leaders(1, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS.merge({:page_size => 5})).size).to be(5)
458
+ expect(@leaderboard.leaders(1, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS.merge({:page_size => 10})).size).to be(10)
459
+ expect(@leaderboard.leaders(2, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS.merge({:page_size => 10})).size).to be(10)
460
+ expect(@leaderboard.leaders(3, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS.merge({:page_size => 10})).size).to be(5)
461
461
  end
462
462
 
463
463
  it 'should return the correct number of members when calling around_me with a page_size options' do
464
464
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
465
465
 
466
466
  leaders_around_me = @leaderboard.around_me('member_30', Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS.merge({:page_size => 3}))
467
- leaders_around_me.size.should be(3)
468
- leaders_around_me[0][:member].should eql('member_31')
469
- leaders_around_me[2][:member].should eql('member_29')
467
+ expect(leaders_around_me.size).to be(3)
468
+ expect(leaders_around_me[0][:member]).to eql('member_31')
469
+ expect(leaders_around_me[2][:member]).to eql('member_29')
470
470
  end
471
471
 
472
472
  it 'should return the correct information when calling percentile_for' do
473
473
  rank_members_in_leaderboard(12)
474
474
 
475
- @leaderboard.percentile_for('member_1').should eql(0)
476
- @leaderboard.percentile_for('member_2').should eql(9)
477
- @leaderboard.percentile_for('member_3').should eql(17)
478
- @leaderboard.percentile_for('member_4').should eql(25)
479
- @leaderboard.percentile_for('member_12').should eql(92)
475
+ expect(@leaderboard.percentile_for('member_1')).to eql(0)
476
+ expect(@leaderboard.percentile_for('member_2')).to eql(9)
477
+ expect(@leaderboard.percentile_for('member_3')).to eql(17)
478
+ expect(@leaderboard.percentile_for('member_4')).to eql(25)
479
+ expect(@leaderboard.percentile_for('member_12')).to eql(92)
480
480
  end
481
481
 
482
482
  it 'should return the correct information when calling score_for_percentile' do
483
483
  rank_members_in_leaderboard(5)
484
484
 
485
- @leaderboard.score_for_percentile(0).should eql(1.0)
486
- @leaderboard.score_for_percentile(75).should eql(4.0)
487
- @leaderboard.score_for_percentile(87.5).should eql(4.5)
488
- @leaderboard.score_for_percentile(93.75).should eql(4.75)
489
- @leaderboard.score_for_percentile(100).should eql(5.0)
485
+ expect(@leaderboard.score_for_percentile(0)).to eql(1.0)
486
+ expect(@leaderboard.score_for_percentile(75)).to eql(4.0)
487
+ expect(@leaderboard.score_for_percentile(87.5)).to eql(4.5)
488
+ expect(@leaderboard.score_for_percentile(93.75)).to eql(4.75)
489
+ expect(@leaderboard.score_for_percentile(100)).to eql(5.0)
490
490
  end
491
491
 
492
492
  it 'should not throw an exception when calling around_me with a member not in the leaderboard' do
493
493
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
494
494
 
495
495
  leaders_around_me = @leaderboard.around_me('jones', Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS.merge({:page_size => 3}))
496
- leaders_around_me.size.should be(0)
496
+ expect(leaders_around_me.size).to be(0)
497
497
  end
498
498
 
499
499
  it 'should not throw an exception when calling score_and_rank_for with a member not in the leaderboard' do
500
500
  score_and_rank_for_member = @leaderboard.score_and_rank_for('jones')
501
501
 
502
- score_and_rank_for_member[:member].should eql('jones')
503
- score_and_rank_for_member[:score].should be_nil
504
- score_and_rank_for_member[:rank].should be_nil
502
+ expect(score_and_rank_for_member[:member]).to eql('jones')
503
+ expect(score_and_rank_for_member[:score]).to be_nil
504
+ expect(score_and_rank_for_member[:rank]).to be_nil
505
505
  end
506
506
 
507
507
  it 'should not throw an exception when calling ranked_in_list with a member not in the leaderboard' do
@@ -510,36 +510,36 @@ describe 'Leaderboard' do
510
510
  members = ['member_1', 'member_5', 'jones']
511
511
  ranked_members = @leaderboard.ranked_in_list(members)
512
512
 
513
- ranked_members.size.should be(3)
514
- ranked_members[2][:rank].should be_nil
513
+ expect(ranked_members.size).to be(3)
514
+ expect(ranked_members[2][:rank]).to be_nil
515
515
  end
516
516
 
517
517
  it 'should not throw an exception when calling percentile_for with a member not in the leaderboard' do
518
518
  percentile = @leaderboard.percentile_for('jones')
519
519
 
520
- percentile.should be_nil
520
+ expect(percentile).to be_nil
521
521
  end
522
522
 
523
523
  it 'should allow you to change the score for a member not in the leaderboard' do
524
- @leaderboard.score_for('jones').should be_nil
524
+ expect(@leaderboard.score_for('jones')).to be_nil
525
525
  @leaderboard.change_score_for('jones', 5)
526
- @leaderboard.score_for('jones').should eql(5.0)
526
+ expect(@leaderboard.score_for('jones')).to eql(5.0)
527
527
  end
528
528
 
529
529
  it 'should return the correct page when calling page_for a given member in the leaderboard' do
530
- @leaderboard.page_for('jones').should be(0)
530
+ expect(@leaderboard.page_for('jones')).to be(0)
531
531
 
532
532
  rank_members_in_leaderboard(20)
533
533
 
534
- @leaderboard.page_for('member_17').should be(1)
535
- @leaderboard.page_for('member_11').should be(1)
536
- @leaderboard.page_for('member_10').should be(1)
537
- @leaderboard.page_for('member_1').should be(1)
534
+ expect(@leaderboard.page_for('member_17')).to be(1)
535
+ expect(@leaderboard.page_for('member_11')).to be(1)
536
+ expect(@leaderboard.page_for('member_10')).to be(1)
537
+ expect(@leaderboard.page_for('member_1')).to be(1)
538
538
 
539
- @leaderboard.page_for('member_17', 10).should be(1)
540
- @leaderboard.page_for('member_11', 10).should be(1)
541
- @leaderboard.page_for('member_10', 10).should be(2)
542
- @leaderboard.page_for('member_1', 10).should be(2)
539
+ expect(@leaderboard.page_for('member_17', 10)).to be(1)
540
+ expect(@leaderboard.page_for('member_11', 10)).to be(1)
541
+ expect(@leaderboard.page_for('member_10', 10)).to be(2)
542
+ expect(@leaderboard.page_for('member_1', 10)).to be(2)
543
543
  end
544
544
 
545
545
  it 'should set an expire on the leaderboard' do
@@ -547,12 +547,12 @@ describe 'Leaderboard' do
547
547
 
548
548
  @leaderboard.expire_leaderboard(3)
549
549
  @redis_connection.ttl(@leaderboard.leaderboard_name).tap do |ttl|
550
- ttl.should be > 1
551
- ttl.should be <= 3
550
+ expect(ttl).to be > 1
551
+ expect(ttl).to be <= 3
552
552
  end
553
553
  @redis_connection.ttl(@leaderboard.send(:member_data_key, @leaderboard.leaderboard_name)).tap do |ttl|
554
- ttl.should be > 1
555
- ttl.should be <= 3
554
+ expect(ttl).to be > 1
555
+ expect(ttl).to be <= 3
556
556
  end
557
557
  end
558
558
 
@@ -561,27 +561,27 @@ describe 'Leaderboard' do
561
561
 
562
562
  @leaderboard.expire_leaderboard_at((Time.now + 10).to_i)
563
563
  @redis_connection.ttl(@leaderboard.leaderboard_name).tap do |ttl|
564
- ttl.should be > 1
565
- ttl.should be <= 10
564
+ expect(ttl).to be > 1
565
+ expect(ttl).to be <= 10
566
566
  end
567
567
  @redis_connection.ttl(@leaderboard.send(:member_data_key, @leaderboard.leaderboard_name)).tap do |ttl|
568
- ttl.should be > 1
569
- ttl.should be <= 10
568
+ expect(ttl).to be > 1
569
+ expect(ttl).to be <= 10
570
570
  end
571
571
  end
572
572
 
573
573
  it 'should allow you to rank multiple members with a variable number of arguments' do
574
- @leaderboard.total_members.should be(0)
574
+ expect(@leaderboard.total_members).to be(0)
575
575
  @leaderboard.rank_members('member_1', 1, 'member_10', 10)
576
- @leaderboard.total_members.should be(2)
577
- @leaderboard.leaders(1).first[:member].should eql('member_10')
576
+ expect(@leaderboard.total_members).to be(2)
577
+ expect(@leaderboard.leaders(1).first[:member]).to eql('member_10')
578
578
  end
579
579
 
580
580
  it 'should allow you to rank multiple members with an array' do
581
- @leaderboard.total_members.should be(0)
581
+ expect(@leaderboard.total_members).to be(0)
582
582
  @leaderboard.rank_members(['member_1', 1, 'member_10', 10])
583
- @leaderboard.total_members.should be(2)
584
- @leaderboard.leaders(1).first[:member].should eql('member_10')
583
+ expect(@leaderboard.total_members).to be(2)
584
+ expect(@leaderboard.leaders(1).first[:member]).to eql('member_10')
585
585
  end
586
586
 
587
587
  it 'should allow you to set reverse after creating a leaderboard to see results in highest-to-lowest or lowest-to-highest order' do
@@ -589,41 +589,41 @@ describe 'Leaderboard' do
589
589
 
590
590
  leaders = @leaderboard.leaders(1)
591
591
 
592
- leaders.size.should be(25)
593
- leaders[0][:member].should eql('member_25')
594
- leaders[-2][:member].should eql('member_2')
595
- leaders[-1][:member].should eql('member_1')
596
- leaders[-1][:score].to_i.should be(1)
592
+ expect(leaders.size).to be(25)
593
+ expect(leaders[0][:member]).to eql('member_25')
594
+ expect(leaders[-2][:member]).to eql('member_2')
595
+ expect(leaders[-1][:member]).to eql('member_1')
596
+ expect(leaders[-1][:score].to_i).to be(1)
597
597
 
598
598
  @leaderboard.reverse = true
599
599
 
600
600
  leaders = @leaderboard.leaders(1)
601
601
 
602
- leaders.size.should be(25)
603
- leaders[0][:member].should eql('member_1')
604
- leaders[-2][:member].should eql('member_24')
605
- leaders[-1][:member].should eql('member_25')
606
- leaders[-1][:score].to_i.should be(25)
602
+ expect(leaders.size).to be(25)
603
+ expect(leaders[0][:member]).to eql('member_1')
604
+ expect(leaders[-2][:member]).to eql('member_24')
605
+ expect(leaders[-1][:member]).to eql('member_25')
606
+ expect(leaders[-1][:score].to_i).to be(25)
607
607
  end
608
608
 
609
609
  it 'should allow you to retrieve a given set of members from the leaderboard in a rank range' do
610
610
  rank_members_in_leaderboard(25)
611
611
 
612
612
  members = @leaderboard.members_from_rank_range(5, 9)
613
- members.size.should be(5)
614
- members[0][:member].should eql('member_21')
615
- members[0][:score].to_i.should be(21)
616
- members[4][:member].should eql('member_17')
613
+ expect(members.size).to be(5)
614
+ expect(members[0][:member]).to eql('member_21')
615
+ expect(members[0][:score].to_i).to be(21)
616
+ expect(members[4][:member]).to eql('member_17')
617
617
 
618
618
  members = @leaderboard.members_from_rank_range(1, 1)
619
- members.size.should be(1)
620
- members[0][:member].should eql('member_25')
619
+ expect(members.size).to be(1)
620
+ expect(members[0][:member]).to eql('member_25')
621
621
 
622
622
  members = @leaderboard.members_from_rank_range(-1, 26)
623
- members.size.should be(25)
624
- members[0][:member].should eql('member_25')
625
- members[0][:score].to_i.should be(25)
626
- members[24][:member].should eql('member_1')
623
+ expect(members.size).to be(25)
624
+ expect(members[0][:member]).to eql('member_25')
625
+ expect(members[0][:score].to_i).to be(25)
626
+ expect(members[24][:member]).to eql('member_1')
627
627
  end
628
628
 
629
629
  it 'should sort by rank if the :sort_by option is set to :rank' do
@@ -632,16 +632,16 @@ describe 'Leaderboard' do
632
632
  members = ['member_5', 'member_1', 'member_10']
633
633
  ranked_members = @leaderboard.ranked_in_list(members, :sort_by => :rank)
634
634
 
635
- ranked_members.size.should be(3)
635
+ expect(ranked_members.size).to be(3)
636
636
 
637
- ranked_members[0][:rank].should be(16)
638
- ranked_members[0][:score].should eql(10.0)
637
+ expect(ranked_members[0][:rank]).to be(16)
638
+ expect(ranked_members[0][:score]).to eql(10.0)
639
639
 
640
- ranked_members[1][:rank].should be(21)
641
- ranked_members[1][:score].should eql(5.0)
640
+ expect(ranked_members[1][:rank]).to be(21)
641
+ expect(ranked_members[1][:score]).to eql(5.0)
642
642
 
643
- ranked_members[2][:rank].should be(25)
644
- ranked_members[2][:score].should eql(1.0)
643
+ expect(ranked_members[2][:rank]).to be(25)
644
+ expect(ranked_members[2][:score]).to eql(1.0)
645
645
  end
646
646
 
647
647
  it 'should sort by score if the :sort_by option is set to :score' do
@@ -650,16 +650,16 @@ describe 'Leaderboard' do
650
650
  members = ['member_5', 'member_1', 'member_10']
651
651
  ranked_members = @leaderboard.ranked_in_list(members, :sort_by => :score)
652
652
 
653
- ranked_members.size.should be(3)
653
+ expect(ranked_members.size).to be(3)
654
654
 
655
- ranked_members[0][:rank].should be(25)
656
- ranked_members[0][:score].should eql(1.0)
655
+ expect(ranked_members[0][:rank]).to be(25)
656
+ expect(ranked_members[0][:score]).to eql(1.0)
657
657
 
658
- ranked_members[1][:rank].should be(21)
659
- ranked_members[1][:score].should eql(5.0)
658
+ expect(ranked_members[1][:rank]).to be(21)
659
+ expect(ranked_members[1][:score]).to eql(5.0)
660
660
 
661
- ranked_members[2][:rank].should be(16)
662
- ranked_members[2][:score].should eql(10.0)
661
+ expect(ranked_members[2][:rank]).to be(16)
662
+ expect(ranked_members[2][:score]).to eql(10.0)
663
663
  end
664
664
 
665
665
  it 'should return nil for the score and rank for ranked_in_list if a member is not in the leaderboard' do
@@ -667,10 +667,10 @@ describe 'Leaderboard' do
667
667
 
668
668
  ranked_members = @leaderboard.ranked_in_list(['jones'])
669
669
 
670
- ranked_members.size.should be(1)
671
- ranked_members[0][:member].should eql('jones')
672
- ranked_members[0][:score].should be_nil
673
- ranked_members[0][:rank].should be_nil
670
+ expect(ranked_members.size).to be(1)
671
+ expect(ranked_members[0][:member]).to eql('jones')
672
+ expect(ranked_members[0][:score]).to be_nil
673
+ expect(ranked_members[0][:rank]).to be_nil
674
674
  end
675
675
 
676
676
  it 'should rank a member in the leaderboard with conditional execution' do
@@ -680,60 +680,60 @@ describe 'Leaderboard' do
680
680
  false
681
681
  end
682
682
 
683
- @leaderboard.total_members.should be(0)
683
+ expect(@leaderboard.total_members).to be(0)
684
684
  @leaderboard.rank_member_if(highscore_check, 'david', 1337)
685
- @leaderboard.total_members.should be(1)
686
- @leaderboard.score_for('david').should eql(1337.0)
685
+ expect(@leaderboard.total_members).to be(1)
686
+ expect(@leaderboard.score_for('david')).to eql(1337.0)
687
687
  @leaderboard.rank_member_if(highscore_check, 'david', 1336)
688
- @leaderboard.score_for('david').should eql(1337.0)
688
+ expect(@leaderboard.score_for('david')).to eql(1337.0)
689
689
  @leaderboard.rank_member_if(highscore_check, 'david', 1338)
690
- @leaderboard.score_for('david').should eql(1338.0)
690
+ expect(@leaderboard.score_for('david')).to eql(1338.0)
691
691
  end
692
692
 
693
693
  it 'should not delete all the member data when calling remove_member' do
694
694
  rank_members_in_leaderboard
695
695
 
696
- @redis_connection.exists("name:member_data").should be_true
697
- @redis_connection.hgetall("name:member_data").size.should be(5)
698
- @leaderboard.total_members.should be(5)
696
+ expect(@redis_connection.exists("name:member_data")).to be_truthy
697
+ expect(@redis_connection.hgetall("name:member_data").size).to be(5)
698
+ expect(@leaderboard.total_members).to be(5)
699
699
  @leaderboard.remove_member('member_1')
700
- @redis_connection.exists("name:member_data").should be_true
701
- @redis_connection.hgetall("name:member_data").size.should be(4)
702
- @leaderboard.total_members.should be(4)
700
+ expect(@redis_connection.exists("name:member_data")).to be_truthy
701
+ expect(@redis_connection.hgetall("name:member_data").size).to be(4)
702
+ expect(@leaderboard.total_members).to be(4)
703
703
  end
704
704
 
705
705
  it 'should return the members only if the :members_only option is passed' do
706
706
  rank_members_in_leaderboard(25)
707
707
 
708
708
  leaders = @leaderboard.leaders(1, :page_size => 10, :members_only => true)
709
- leaders.size.should == 10
710
- leaders.collect { |leader| leader.keys.should == [:member] }
709
+ expect(leaders.size).to eq(10)
710
+ leaders.collect { |leader| expect(leader.keys).to eq([:member]) }
711
711
 
712
712
  leaders = @leaderboard.all_leaders(:members_only => true)
713
- leaders.size.should == 25
714
- leaders.collect { |leader| leader.keys.should == [:member] }
713
+ expect(leaders.size).to eq(25)
714
+ leaders.collect { |leader| expect(leader.keys).to eq([:member]) }
715
715
 
716
716
  leaders = @leaderboard.members_from_score_range(10, 14, :members_only => true)
717
- leaders.size.should == 5
718
- leaders.collect { |leader| leader.keys.should == [:member] }
717
+ expect(leaders.size).to eq(5)
718
+ leaders.collect { |leader| expect(leader.keys).to eq([:member]) }
719
719
 
720
720
  leaders = @leaderboard.members_from_rank_range(1, 5, :page_size => 10, :members_only => true)
721
- leaders.size.should == 5
722
- leaders.collect { |leader| leader.keys.should == [:member] }
721
+ expect(leaders.size).to eq(5)
722
+ leaders.collect { |leader| expect(leader.keys).to eq([:member]) }
723
723
 
724
724
  leaders = @leaderboard.around_me('member_10', :page_size => 3, :members_only => true)
725
- leaders.size.should == 3
726
- leaders.collect { |leader| leader.keys.should == [:member] }
725
+ expect(leaders.size).to eq(3)
726
+ leaders.collect { |leader| expect(leader.keys).to eq([:member]) }
727
727
 
728
728
  leaders = @leaderboard.ranked_in_list(['member_1', 'member_25'], :members_only => true)
729
- leaders.size.should == 2
730
- leaders.collect { |leader| leader.keys.should == [:member] }
729
+ expect(leaders.size).to eq(2)
730
+ leaders.collect { |leader| expect(leader.keys).to eq([:member]) }
731
731
  end
732
732
 
733
733
  it 'should allow you to rank a member across multiple leaderboards' do
734
734
  @leaderboard.rank_member_across(['highscores', 'more_highscores'], 'david', 50000, { :member_name => "david" })
735
- @leaderboard.leaders_in('highscores', 1).size.should eql(1)
736
- @leaderboard.leaders_in('more_highscores', 1).size.should eql(1)
735
+ expect(@leaderboard.leaders_in('highscores', 1).size).to eql(1)
736
+ expect(@leaderboard.leaders_in('more_highscores', 1).size).to eql(1)
737
737
  end
738
738
 
739
739
  it 'should allow you to set custom keys for member, score, rank and member_data' do
@@ -749,14 +749,14 @@ describe 'Leaderboard' do
749
749
  rank_members_in_leaderboard(5)
750
750
  leaders = @leaderboard.leaders(1, :with_member_data => true)
751
751
  leaders.each do |leader|
752
- leader[:custom_member_key].should_not be_nil
753
- leader[:member].should be_nil
754
- leader[:custom_score_key].should_not be_nil
755
- leader[:score].should be_nil
756
- leader[:custom_rank_key].should_not be_nil
757
- leader[:rank].should be_nil
758
- leader[:custom_member_data_key].should_not be_nil
759
- leader[:member_data].should be_nil
752
+ expect(leader[:custom_member_key]).not_to be_nil
753
+ expect(leader[:member]).to be_nil
754
+ expect(leader[:custom_score_key]).not_to be_nil
755
+ expect(leader[:score]).to be_nil
756
+ expect(leader[:custom_rank_key]).not_to be_nil
757
+ expect(leader[:rank]).to be_nil
758
+ expect(leader[:custom_member_data_key]).not_to be_nil
759
+ expect(leader[:member_data]).to be_nil
760
760
  end
761
761
  end
762
762
 
@@ -764,7 +764,7 @@ describe 'Leaderboard' do
764
764
  @leaderboard = Leaderboard.new('name', {:member_data_namespace => 'md'}, {:host => "127.0.0.1", :db => 15})
765
765
  rank_members_in_leaderboard
766
766
 
767
- @redis_connection.exists("name:member_data").should be_false
768
- @redis_connection.exists("name:md").should be_true
767
+ expect(@redis_connection.exists("name:member_data")).to be_falsey
768
+ expect(@redis_connection.exists("name:md")).to be_truthy
769
769
  end
770
770
  end