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,116 @@
1
+ require 'spec_helper'
2
+ require 'competition_ranking_leaderboard'
3
+
4
+ describe 'CompetitionRankingLeaderboard (reverse option)' 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', {:reverse => true}, {: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(2)
26
+ expect(leaders[2][:rank]).to eq(2)
27
+ expect(leaders[3][:rank]).to eq(4)
28
+ expect(leaders[4][:rank]).to eq(4)
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', {:reverse => true}, {: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(3)
51
+ end
52
+
53
+ leaderboard.leaders(2, :page_size => 3).tap do |leaders|
54
+ expect(leaders[0][:rank]).to eq(3)
55
+ expect(leaders[1][:rank]).to eq(3)
56
+ expect(leaders[2][:rank]).to eq(3)
57
+ end
58
+
59
+ leaderboard.leaders(3, :page_size => 3).tap do |leaders|
60
+ expect(leaders[0][:rank]).to eq(7)
61
+ expect(leaders[1][:rank]).to eq(7)
62
+ expect(leaders[2][:rank]).to eq(7)
63
+ end
64
+
65
+ leaderboard.disconnect
66
+ end
67
+
68
+ it 'should retrieve the correct rankings for #around_me' do
69
+ leaderboard = CompetitionRankingLeaderboard.new('ties', {:reverse => true}, {:host => "127.0.0.1", :db => 15})
70
+ leaderboard.rank_member('member_1', 50)
71
+ leaderboard.rank_member('member_2', 50)
72
+ leaderboard.rank_member('member_6', 50)
73
+ leaderboard.rank_member('member_7', 50)
74
+ leaderboard.rank_member('member_3', 30)
75
+ leaderboard.rank_member('member_4', 30)
76
+ leaderboard.rank_member('member_8', 30)
77
+ leaderboard.rank_member('member_9', 30)
78
+ leaderboard.rank_member('member_5', 10)
79
+ leaderboard.rank_member('member_10', 10)
80
+
81
+ leaderboard.around_me('member_4').tap do |leaders|
82
+ expect(leaders[0][:rank]).to eq(1)
83
+ expect(leaders[4][:rank]).to eq(3)
84
+ expect(leaders[9][:rank]).to eq(7)
85
+ end
86
+
87
+ leaderboard.disconnect
88
+ end
89
+
90
+ it 'should allow you to retrieve the rank of a single member using #rank_for' do
91
+ leaderboard = CompetitionRankingLeaderboard.new('ties', {:reverse => true}, {:host => "127.0.0.1", :db => 15})
92
+ leaderboard.rank_member('member_1', 50)
93
+ leaderboard.rank_member('member_2', 50)
94
+ leaderboard.rank_member('member_3', 30)
95
+
96
+ expect(leaderboard.rank_for('member_3')).to eq(1)
97
+ expect(leaderboard.rank_for('member_1')).to eq(2)
98
+ expect(leaderboard.rank_for('member_2')).to eq(2)
99
+
100
+ leaderboard.disconnect
101
+ end
102
+
103
+ it 'should allow you to retrieve the score and rank of a single member using #score_and_rank_for' do
104
+ leaderboard = CompetitionRankingLeaderboard.new('ties', {:reverse => true}, {:host => "127.0.0.1", :db => 15})
105
+ leaderboard.rank_member('member_1', 50)
106
+ leaderboard.rank_member('member_2', 50)
107
+ leaderboard.rank_member('member_3', 30)
108
+
109
+ expect(leaderboard.score_and_rank_for('member_3')[:rank]).to eq(1)
110
+ expect(leaderboard.score_and_rank_for('member_1')[:rank]).to eq(2)
111
+ expect(leaderboard.score_and_rank_for('member_2')[:rank]).to eq(2)
112
+
113
+ leaderboard.disconnect
114
+ end
115
+ end
116
+ end
@@ -15,35 +15,35 @@ describe 'Leaderboard (reverse option)' do
15
15
  it 'should return the correct rank when calling rank_for' do
16
16
  rank_members_in_leaderboard(5)
17
17
 
18
- @leaderboard.rank_for('member_4').should be(4)
18
+ expect(@leaderboard.rank_for('member_4')).to be(4)
19
19
  end
20
20
 
21
21
  it 'should return the correct list when calling leaders' do
22
22
  rank_members_in_leaderboard(25)
23
23
 
24
- @leaderboard.total_members.should be(25)
24
+ expect(@leaderboard.total_members).to be(25)
25
25
 
26
26
  leaders = @leaderboard.leaders(1)
27
27
 
28
- leaders.size.should be(25)
29
- leaders[0][:member].should eql('member_1')
30
- leaders[-2][:member].should eql('member_24')
31
- leaders[-1][:member].should eql('member_25')
32
- leaders[-1][:score].to_i.should be(25)
28
+ expect(leaders.size).to be(25)
29
+ expect(leaders[0][:member]).to eql('member_1')
30
+ expect(leaders[-2][:member]).to eql('member_24')
31
+ expect(leaders[-1][:member]).to eql('member_25')
32
+ expect(leaders[-1][:score].to_i).to be(25)
33
33
  end
34
34
 
35
35
  it 'should return the correct list when calling members' do
36
36
  rank_members_in_leaderboard(25)
37
37
 
38
- @leaderboard.total_members.should be(25)
38
+ expect(@leaderboard.total_members).to be(25)
39
39
 
40
40
  members = @leaderboard.members(1)
41
41
 
42
- members.size.should be(25)
43
- members[0][:member].should eql('member_1')
44
- members[-2][:member].should eql('member_24')
45
- members[-1][:member].should eql('member_25')
46
- members[-1][:score].to_i.should be(25)
42
+ expect(members.size).to be(25)
43
+ expect(members[0][:member]).to eql('member_1')
44
+ expect(members[-2][:member]).to eql('member_24')
45
+ expect(members[-1][:member]).to eql('member_25')
46
+ expect(members[-1][:score].to_i).to be(25)
47
47
  end
48
48
 
49
49
  it 'should allow you to retrieve members in a given score range' do
@@ -52,137 +52,137 @@ describe 'Leaderboard (reverse option)' do
52
52
  members = @leaderboard.members_from_score_range(10, 15, {:with_scores => false, :with_rank => false})
53
53
 
54
54
  member_10 = {:member => 'member_10', :score => 10.0, :rank => 10}
55
- members[0].should eql(member_10)
55
+ expect(members[0]).to eql(member_10)
56
56
 
57
57
  member_15 = {:member => 'member_15', :score => 15.0, :rank => 15}
58
- members[5].should eql(member_15)
58
+ expect(members[5]).to eql(member_15)
59
59
 
60
60
  members = @leaderboard.members_from_score_range(10, 15, {:with_member_data => true})
61
61
 
62
62
  member_10 = {:member => 'member_10', :rank => 10, :score => 10.0, :member_data => {:member_name => 'Leaderboard member 10'}.to_s}
63
- members[0].should == member_10
63
+ expect(members[0]).to eq(member_10)
64
64
 
65
65
  member_15 = {:member => 'member_15', :rank => 15, :score => 15.0, :member_data => {:member_name => 'Leaderboard member 15'}.to_s}
66
- members[5].should == member_15
66
+ expect(members[5]).to eq(member_15)
67
67
  end
68
68
 
69
69
  it 'should allow you to call leaders with various options that respect the defaults for the options not passed in' do
70
70
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE + 1)
71
71
 
72
72
  leaders = @leaderboard.leaders(1, :page_size => 1)
73
- leaders.size.should be(1)
73
+ expect(leaders.size).to be(1)
74
74
 
75
75
  leaders = @leaderboard.leaders(1)
76
- leaders.size.should be(Leaderboard::DEFAULT_PAGE_SIZE)
76
+ expect(leaders.size).to be(Leaderboard::DEFAULT_PAGE_SIZE)
77
77
  member_1 = {:member => 'member_1', :score => 1.0, :rank => 1}
78
78
  member_2 = {:member => 'member_2', :score => 2.0, :rank => 2}
79
79
  member_3 = {:member => 'member_3', :score => 3.0, :rank => 3}
80
- leaders[0].should eql(member_1)
81
- leaders[1].should eql(member_2)
82
- leaders[2].should eql(member_3)
80
+ expect(leaders[0]).to eql(member_1)
81
+ expect(leaders[1]).to eql(member_2)
82
+ expect(leaders[2]).to eql(member_3)
83
83
  end
84
84
 
85
85
  it 'should return a single member when calling member_at' do
86
86
  rank_members_in_leaderboard(50)
87
- @leaderboard.member_at(1)[:rank].should eql(1)
88
- @leaderboard.member_at(1)[:score].should eql(1.0)
89
- @leaderboard.member_at(26)[:rank].should eql(26)
90
- @leaderboard.member_at(50)[:rank].should eql(50)
91
- @leaderboard.member_at(51).should be_nil
92
- @leaderboard.member_at(1, :with_member_data => true)[:member_data].should == {:member_name => 'Leaderboard member 1'}.to_s
87
+ expect(@leaderboard.member_at(1)[:rank]).to eql(1)
88
+ expect(@leaderboard.member_at(1)[:score]).to eql(1.0)
89
+ expect(@leaderboard.member_at(26)[:rank]).to eql(26)
90
+ expect(@leaderboard.member_at(50)[:rank]).to eql(50)
91
+ expect(@leaderboard.member_at(51)).to be_nil
92
+ expect(@leaderboard.member_at(1, :with_member_data => true)[:member_data]).to eq({:member_name => 'Leaderboard member 1'}.to_s)
93
93
  end
94
94
 
95
95
  it 'should return the correct information when calling around_me' do
96
96
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
97
97
 
98
- @leaderboard.total_members.should be(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
98
+ expect(@leaderboard.total_members).to be(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
99
99
 
100
100
  leaders_around_me = @leaderboard.around_me('member_30')
101
- (leaders_around_me.size / 2).should be(@leaderboard.page_size / 2)
101
+ expect(leaders_around_me.size / 2).to be(@leaderboard.page_size / 2)
102
102
 
103
103
  leaders_around_me = @leaderboard.around_me('member_76')
104
- leaders_around_me.size.should be(@leaderboard.page_size / 2 + 1)
104
+ expect(leaders_around_me.size).to be(@leaderboard.page_size / 2 + 1)
105
105
 
106
106
  leaders_around_me = @leaderboard.around_me('member_1')
107
- (leaders_around_me.size / 2).should be(@leaderboard.page_size / 2)
107
+ expect(leaders_around_me.size / 2).to be(@leaderboard.page_size / 2)
108
108
  end
109
109
 
110
110
  it 'should return the correct information when calling ranked_in_list' do
111
111
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE)
112
112
 
113
- @leaderboard.total_members.should be(Leaderboard::DEFAULT_PAGE_SIZE)
113
+ expect(@leaderboard.total_members).to be(Leaderboard::DEFAULT_PAGE_SIZE)
114
114
 
115
115
  members = ['member_1', 'member_5', 'member_10']
116
116
  ranked_members = @leaderboard.ranked_in_list(members, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS)
117
117
 
118
- ranked_members.size.should be(3)
118
+ expect(ranked_members.size).to be(3)
119
119
 
120
- ranked_members[0][:rank].should eql(1)
121
- ranked_members[0][:score].should eql(1.0)
120
+ expect(ranked_members[0][:rank]).to eql(1)
121
+ expect(ranked_members[0][:score]).to eql(1.0)
122
122
 
123
- ranked_members[1][:rank].should eql(5)
124
- ranked_members[1][:score].should eql(5.0)
123
+ expect(ranked_members[1][:rank]).to eql(5)
124
+ expect(ranked_members[1][:score]).to eql(5.0)
125
125
 
126
- ranked_members[2][:rank].should eql(10)
127
- ranked_members[2][:score].should eql(10.0)
126
+ expect(ranked_members[2][:rank]).to eql(10)
127
+ expect(ranked_members[2][:score]).to eql(10.0)
128
128
  end
129
129
 
130
130
  it 'should return the correct information when calling ranked_in_list without scores' do
131
131
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE)
132
132
 
133
- @leaderboard.total_members.should be(Leaderboard::DEFAULT_PAGE_SIZE)
133
+ expect(@leaderboard.total_members).to be(Leaderboard::DEFAULT_PAGE_SIZE)
134
134
 
135
135
  members = ['member_1', 'member_5', 'member_10']
136
136
  ranked_members = @leaderboard.ranked_in_list(members, {:with_scores => false, :with_rank => true})
137
- ranked_members.size.should be(3)
137
+ expect(ranked_members.size).to be(3)
138
138
 
139
- ranked_members[0][:rank].should be(1)
139
+ expect(ranked_members[0][:rank]).to be(1)
140
140
 
141
- ranked_members[1][:rank].should be(5)
141
+ expect(ranked_members[1][:rank]).to be(5)
142
142
 
143
- ranked_members[2][:rank].should be(10)
143
+ expect(ranked_members[2][:rank]).to be(10)
144
144
  end
145
145
 
146
146
  it 'should return the correct information when calling score_and_rank_for' do
147
147
  rank_members_in_leaderboard
148
148
 
149
149
  data = @leaderboard.score_and_rank_for('member_1')
150
- data[:member].should eql('member_1')
151
- data[:score].should eql(1.0)
152
- data[:rank].should be(1)
150
+ expect(data[:member]).to eql('member_1')
151
+ expect(data[:score]).to eql(1.0)
152
+ expect(data[:rank]).to be(1)
153
153
  end
154
154
 
155
155
  it 'should allow you to remove members in a given score range' do
156
156
  rank_members_in_leaderboard
157
157
 
158
- @leaderboard.total_members.should be(5)
158
+ expect(@leaderboard.total_members).to be(5)
159
159
 
160
160
  @leaderboard.rank_member('cheater_1', 100)
161
161
  @leaderboard.rank_member('cheater_2', 101)
162
162
  @leaderboard.rank_member('cheater_3', 102)
163
163
 
164
- @leaderboard.total_members.should be(8)
164
+ expect(@leaderboard.total_members).to be(8)
165
165
 
166
166
  @leaderboard.remove_members_in_score_range(100, 102)
167
167
 
168
- @leaderboard.total_members.should be(5)
168
+ expect(@leaderboard.total_members).to be(5)
169
169
 
170
170
  leaders = @leaderboard.leaders(1)
171
171
  leaders.each do |leader|
172
- leader[:score].should be < 100
172
+ expect(leader[:score]).to be < 100
173
173
  end
174
174
  end
175
175
 
176
176
  it 'should allow you to remove members outside a given rank' do
177
177
  rank_members_in_leaderboard
178
178
 
179
- @leaderboard.total_members.should be(5)
180
- @leaderboard.remove_members_outside_rank(3).should be(2)
179
+ expect(@leaderboard.total_members).to be(5)
180
+ expect(@leaderboard.remove_members_outside_rank(3)).to be(2)
181
181
 
182
182
  leaders = @leaderboard.leaders(1)
183
- leaders.size.should be(3)
184
- leaders[0][:member].should == 'member_1'
185
- leaders[2][:member].should == 'member_3'
183
+ expect(leaders.size).to be(3)
184
+ expect(leaders[0][:member]).to eq('member_1')
185
+ expect(leaders[2][:member]).to eq('member_3')
186
186
  end
187
187
 
188
188
  it 'should allow you to merge leaderboards' do
@@ -196,15 +196,15 @@ describe 'Leaderboard (reverse option)' do
196
196
  bar.rank_member('bar_3', 5)
197
197
 
198
198
  foobar_keys = foo.merge_leaderboards('foobar', ['bar'])
199
- foobar_keys.should be(5)
199
+ expect(foobar_keys).to be(5)
200
200
 
201
201
  foobar = Leaderboard.new('foobar', Leaderboard::DEFAULT_OPTIONS, {:host => "127.0.0.1", :db => 15})
202
- foobar.total_members.should be(5)
202
+ expect(foobar.total_members).to be(5)
203
203
 
204
204
  first_leader_in_foobar = foobar.leaders(1).first
205
- first_leader_in_foobar[:rank].should be(1)
206
- first_leader_in_foobar[:member].should eql('bar_3')
207
- first_leader_in_foobar[:score].should eql(5.0)
205
+ expect(first_leader_in_foobar[:rank]).to be(1)
206
+ expect(first_leader_in_foobar[:member]).to eql('bar_3')
207
+ expect(first_leader_in_foobar[:score]).to eql(5.0)
208
208
 
209
209
  foo.disconnect
210
210
  bar.disconnect
@@ -223,15 +223,15 @@ describe 'Leaderboard (reverse option)' do
223
223
  bar.rank_member('bar_3', 5)
224
224
 
225
225
  foobar_keys = foo.intersect_leaderboards('foobar', ['bar'], {:aggregate => :max})
226
- foobar_keys.should be(2)
226
+ expect(foobar_keys).to be(2)
227
227
 
228
228
  foobar = Leaderboard.new('foobar', Leaderboard::DEFAULT_OPTIONS, {:host => "127.0.0.1", :db => 15})
229
- foobar.total_members.should be(2)
229
+ expect(foobar.total_members).to be(2)
230
230
 
231
231
  first_leader_in_foobar = foobar.leaders(1).first
232
- first_leader_in_foobar[:rank].should be(1)
233
- first_leader_in_foobar[:member].should eql('bar_3')
234
- first_leader_in_foobar[:score].should eql(6.0)
232
+ expect(first_leader_in_foobar[:rank]).to be(1)
233
+ expect(first_leader_in_foobar[:member]).to eql('bar_3')
234
+ expect(first_leader_in_foobar[:score]).to eql(6.0)
235
235
 
236
236
  foo.disconnect
237
237
  bar.disconnect
@@ -241,98 +241,98 @@ describe 'Leaderboard (reverse option)' do
241
241
  it 'should respect options in the massage_leader_data method' do
242
242
  rank_members_in_leaderboard(25)
243
243
 
244
- @leaderboard.total_members.should be(25)
244
+ expect(@leaderboard.total_members).to be(25)
245
245
 
246
246
  leaders = @leaderboard.leaders(1)
247
- leaders[0][:member].should_not be_nil
248
- leaders[0][:score].should_not be_nil
249
- leaders[0][:rank].should_not be_nil
247
+ expect(leaders[0][:member]).not_to be_nil
248
+ expect(leaders[0][:score]).not_to be_nil
249
+ expect(leaders[0][:rank]).not_to be_nil
250
250
 
251
251
  @leaderboard.page_size = Leaderboard::DEFAULT_PAGE_SIZE
252
252
  leaders = @leaderboard.leaders(1, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS)
253
- leaders.size.should be(25)
254
- leaders[0][:member].should_not be_nil
255
- leaders[0][:score].should_not be_nil
256
- leaders[0][:rank].should_not be_nil
253
+ expect(leaders.size).to be(25)
254
+ expect(leaders[0][:member]).not_to be_nil
255
+ expect(leaders[0][:score]).not_to be_nil
256
+ expect(leaders[0][:rank]).not_to be_nil
257
257
  end
258
258
 
259
259
  it 'should return the correct number of members when calling around_me with a page_size options' do
260
260
  rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
261
261
 
262
262
  leaders_around_me = @leaderboard.around_me('member_30', Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS.merge({:page_size => 3}))
263
- leaders_around_me.size.should be(3)
264
- leaders_around_me[2][:member].should eql('member_31')
265
- leaders_around_me[0][:member].should eql('member_29')
263
+ expect(leaders_around_me.size).to be(3)
264
+ expect(leaders_around_me[2][:member]).to eql('member_31')
265
+ expect(leaders_around_me[0][:member]).to eql('member_29')
266
266
  end
267
267
 
268
268
  it 'should return the correct information when calling percentile_for' do
269
269
  rank_members_in_leaderboard(12)
270
270
 
271
- @leaderboard.percentile_for('member_1').should eql(100)
272
- @leaderboard.percentile_for('member_2').should eql(91)
273
- @leaderboard.percentile_for('member_3').should eql(83)
274
- @leaderboard.percentile_for('member_4').should eql(75)
275
- @leaderboard.percentile_for('member_12').should eql(8)
271
+ expect(@leaderboard.percentile_for('member_1')).to eql(100)
272
+ expect(@leaderboard.percentile_for('member_2')).to eql(91)
273
+ expect(@leaderboard.percentile_for('member_3')).to eql(83)
274
+ expect(@leaderboard.percentile_for('member_4')).to eql(75)
275
+ expect(@leaderboard.percentile_for('member_12')).to eql(8)
276
276
  end
277
277
 
278
278
  it 'should return the correct information when calling score_for_percentile' do
279
279
  rank_members_in_leaderboard(5)
280
280
 
281
- @leaderboard.score_for_percentile(0).should eql(5.0)
282
- @leaderboard.score_for_percentile(75).should eql(2.0)
283
- @leaderboard.score_for_percentile(87.5).should eql(1.5)
284
- @leaderboard.score_for_percentile(93.75).should eql(1.25)
285
- @leaderboard.score_for_percentile(100).should eql(1.0)
281
+ expect(@leaderboard.score_for_percentile(0)).to eql(5.0)
282
+ expect(@leaderboard.score_for_percentile(75)).to eql(2.0)
283
+ expect(@leaderboard.score_for_percentile(87.5)).to eql(1.5)
284
+ expect(@leaderboard.score_for_percentile(93.75)).to eql(1.25)
285
+ expect(@leaderboard.score_for_percentile(100)).to eql(1.0)
286
286
  end
287
287
 
288
288
  it 'should return the correct page when calling page_for a given member in the leaderboard' do
289
- @leaderboard.page_for('jones').should be(0)
289
+ expect(@leaderboard.page_for('jones')).to be(0)
290
290
 
291
291
  rank_members_in_leaderboard(20)
292
292
 
293
- @leaderboard.page_for('member_17').should be(1)
294
- @leaderboard.page_for('member_11').should be(1)
295
- @leaderboard.page_for('member_10').should be(1)
296
- @leaderboard.page_for('member_1').should be(1)
293
+ expect(@leaderboard.page_for('member_17')).to be(1)
294
+ expect(@leaderboard.page_for('member_11')).to be(1)
295
+ expect(@leaderboard.page_for('member_10')).to be(1)
296
+ expect(@leaderboard.page_for('member_1')).to be(1)
297
297
 
298
- @leaderboard.page_for('member_10', 10).should be(1)
299
- @leaderboard.page_for('member_1', 10).should be(1)
300
- @leaderboard.page_for('member_17', 10).should be(2)
301
- @leaderboard.page_for('member_11', 10).should be(2)
298
+ expect(@leaderboard.page_for('member_10', 10)).to be(1)
299
+ expect(@leaderboard.page_for('member_1', 10)).to be(1)
300
+ expect(@leaderboard.page_for('member_17', 10)).to be(2)
301
+ expect(@leaderboard.page_for('member_11', 10)).to be(2)
302
302
  end
303
303
 
304
304
  it 'should allow you to rank multiple members with a variable number of arguments' do
305
- @leaderboard.total_members.should be(0)
305
+ expect(@leaderboard.total_members).to be(0)
306
306
  @leaderboard.rank_members('member_1', 1, 'member_10', 10)
307
- @leaderboard.total_members.should be(2)
308
- @leaderboard.leaders(1).first[:member].should eql('member_1')
307
+ expect(@leaderboard.total_members).to be(2)
308
+ expect(@leaderboard.leaders(1).first[:member]).to eql('member_1')
309
309
  end
310
310
 
311
311
  it 'should allow you to rank multiple members with an array' do
312
- @leaderboard.total_members.should be(0)
312
+ expect(@leaderboard.total_members).to be(0)
313
313
  @leaderboard.rank_members(['member_1', 1, 'member_10', 10])
314
- @leaderboard.total_members.should be(2)
315
- @leaderboard.leaders(1).first[:member].should eql('member_1')
314
+ expect(@leaderboard.total_members).to be(2)
315
+ expect(@leaderboard.leaders(1).first[:member]).to eql('member_1')
316
316
  end
317
317
 
318
318
  it 'should allow you to retrieve a given set of members from the leaderboard in a rank range' do
319
319
  rank_members_in_leaderboard(25)
320
320
 
321
321
  members = @leaderboard.members_from_rank_range(5, 9)
322
- members.size.should be(5)
323
- members[0][:member].should eql('member_5')
324
- members[0][:score].to_i.should be(5)
325
- members[4][:member].should eql('member_9')
322
+ expect(members.size).to be(5)
323
+ expect(members[0][:member]).to eql('member_5')
324
+ expect(members[0][:score].to_i).to be(5)
325
+ expect(members[4][:member]).to eql('member_9')
326
326
 
327
327
  members = @leaderboard.members_from_rank_range(1, 1)
328
- members.size.should be(1)
329
- members[0][:member].should eql('member_1')
328
+ expect(members.size).to be(1)
329
+ expect(members[0][:member]).to eql('member_1')
330
330
 
331
331
  members = @leaderboard.members_from_rank_range(-1, 26)
332
- members.size.should be(25)
333
- members[0][:member].should eql('member_1')
334
- members[0][:score].to_i.should be(1)
335
- members[24][:member].should eql('member_25')
332
+ expect(members.size).to be(25)
333
+ expect(members[0][:member]).to eql('member_1')
334
+ expect(members[0][:score].to_i).to be(1)
335
+ expect(members[24][:member]).to eql('member_25')
336
336
  end
337
337
 
338
338
  it 'should sort by rank if the :sort_by option is set to :rank' do
@@ -341,16 +341,16 @@ describe 'Leaderboard (reverse option)' do
341
341
  members = ['member_5', 'member_1', 'member_10']
342
342
  ranked_members = @leaderboard.ranked_in_list(members, :sort_by => :rank)
343
343
 
344
- ranked_members.size.should be(3)
344
+ expect(ranked_members.size).to be(3)
345
345
 
346
- ranked_members[0][:rank].should be(1)
347
- ranked_members[0][:score].should eql(1.0)
346
+ expect(ranked_members[0][:rank]).to be(1)
347
+ expect(ranked_members[0][:score]).to eql(1.0)
348
348
 
349
- ranked_members[1][:rank].should be(5)
350
- ranked_members[1][:score].should eql(5.0)
349
+ expect(ranked_members[1][:rank]).to be(5)
350
+ expect(ranked_members[1][:score]).to eql(5.0)
351
351
 
352
- ranked_members[2][:rank].should be(10)
353
- ranked_members[2][:score].should eql(10.0)
352
+ expect(ranked_members[2][:rank]).to be(10)
353
+ expect(ranked_members[2][:score]).to eql(10.0)
354
354
  end
355
355
 
356
356
  it 'should sort by score if the :sort_by option is set to :score' do
@@ -359,15 +359,15 @@ describe 'Leaderboard (reverse option)' do
359
359
  members = ['member_5', 'member_1', 'member_10']
360
360
  ranked_members = @leaderboard.ranked_in_list(members, :sort_by => :score)
361
361
 
362
- ranked_members.size.should be(3)
362
+ expect(ranked_members.size).to be(3)
363
363
 
364
- ranked_members[0][:rank].should be(1)
365
- ranked_members[0][:score].should eql(1.0)
364
+ expect(ranked_members[0][:rank]).to be(1)
365
+ expect(ranked_members[0][:score]).to eql(1.0)
366
366
 
367
- ranked_members[1][:rank].should be(5)
368
- ranked_members[1][:score].should eql(5.0)
367
+ expect(ranked_members[1][:rank]).to be(5)
368
+ expect(ranked_members[1][:score]).to eql(5.0)
369
369
 
370
- ranked_members[2][:rank].should be(10)
371
- ranked_members[2][:score].should eql(10.0)
370
+ expect(ranked_members[2][:rank]).to be(10)
371
+ expect(ranked_members[2][:score]).to eql(10.0)
372
372
  end
373
373
  end