leaderboard 3.6.0 → 3.7.0

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.
@@ -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