leaderboard 2.4.0 → 2.5.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.
- data/.rspec +2 -1
- data/CHANGELOG.markdown +5 -1
- data/README.markdown +75 -62
- data/Rakefile +3 -39
- data/lib/leaderboard.rb +181 -135
- data/lib/leaderboard/version.rb +1 -1
- data/spec/leaderboard_spec.rb +167 -147
- data/spec/reverse_leaderboard_spec.rb +111 -91
- data/spec/version_spec.rb +1 -1
- metadata +5 -9
- data/spec/db/.gitkeep +0 -0
- data/spec/test.conf +0 -8
@@ -5,7 +5,7 @@ describe 'Leaderboard (reverse option)' do
|
|
5
5
|
@redis_connection = Redis.new(:host => "127.0.0.1", :db => 15)
|
6
6
|
@leaderboard = Leaderboard.new('name', Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS.merge({:reverse => true}), :host => "127.0.0.1", :db => 15)
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
after(:each) do
|
10
10
|
@redis_connection.flushdb
|
11
11
|
@leaderboard.disconnect
|
@@ -21,29 +21,29 @@ describe 'Leaderboard (reverse option)' do
|
|
21
21
|
|
22
22
|
it 'should return the correct list when calling leaders' do
|
23
23
|
rank_members_in_leaderboard(25)
|
24
|
-
|
24
|
+
|
25
25
|
@leaderboard.total_members.should be(25)
|
26
26
|
|
27
27
|
leaders = @leaderboard.leaders(1)
|
28
|
-
|
28
|
+
|
29
29
|
leaders.size.should be(25)
|
30
|
-
leaders[0][:member].should
|
31
|
-
leaders[-2][:member].should
|
32
|
-
leaders[-1][:member].should
|
30
|
+
leaders[0][:member].should eql('member_1')
|
31
|
+
leaders[-2][:member].should eql('member_24')
|
32
|
+
leaders[-1][:member].should eql('member_25')
|
33
33
|
leaders[-1][:score].to_i.should be(25)
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'should return the correct list when calling members' do
|
37
37
|
rank_members_in_leaderboard(25)
|
38
|
-
|
38
|
+
|
39
39
|
@leaderboard.total_members.should be(25)
|
40
40
|
|
41
41
|
members = @leaderboard.members(1)
|
42
|
-
|
42
|
+
|
43
43
|
members.size.should be(25)
|
44
|
-
members[0][:member].should
|
45
|
-
members[-2][:member].should
|
46
|
-
members[-1][:member].should
|
44
|
+
members[0][:member].should eql('member_1')
|
45
|
+
members[-2][:member].should eql('member_24')
|
46
|
+
members[-1][:member].should eql('member_25')
|
47
47
|
members[-1][:score].to_i.should be(25)
|
48
48
|
end
|
49
49
|
|
@@ -53,31 +53,31 @@ describe 'Leaderboard (reverse option)' do
|
|
53
53
|
members = @leaderboard.members_from_score_range(10, 15, {:with_scores => false, :with_rank => false})
|
54
54
|
|
55
55
|
member_10 = {:member => 'member_10'}
|
56
|
-
members[0].should
|
56
|
+
members[0].should eql(member_10)
|
57
57
|
|
58
58
|
member_15 = {:member => 'member_15'}
|
59
|
-
members[5].should
|
59
|
+
members[5].should eql(member_15)
|
60
60
|
|
61
61
|
members = @leaderboard.members_from_score_range(10, 15, {:with_scores => true, :with_rank => true, :with_member_data => true})
|
62
62
|
|
63
63
|
member_10 = {:member => 'member_10', :rank => 10, :score => 10.0, :member_data => {'member_name' => 'Leaderboard member 10'}}
|
64
|
-
members[0].should
|
64
|
+
members[0].should eql(member_10)
|
65
65
|
|
66
66
|
member_15 = {:member => 'member_15', :rank => 15, :score => 15.0, :member_data => {'member_name' => 'Leaderboard member 15'}}
|
67
|
-
members[5].should
|
67
|
+
members[5].should eql(member_15)
|
68
68
|
end
|
69
69
|
|
70
70
|
it 'should allow you to retrieve leaders without scores and ranks' do
|
71
71
|
rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE)
|
72
|
-
|
72
|
+
|
73
73
|
@leaderboard.total_members.should be(Leaderboard::DEFAULT_PAGE_SIZE)
|
74
74
|
leaders = @leaderboard.leaders(1, {:with_scores => false, :with_rank => false})
|
75
75
|
|
76
76
|
member_1 = {:member => 'member_1'}
|
77
|
-
leaders[0].should
|
78
|
-
|
77
|
+
leaders[0].should eql(member_1)
|
78
|
+
|
79
79
|
member_25 = {:member => 'member_25'}
|
80
|
-
leaders[24].should
|
80
|
+
leaders[24].should eql(member_25)
|
81
81
|
end
|
82
82
|
|
83
83
|
it 'should allow you to call leaders with various options that respect the defaults for the options not passed in' do
|
@@ -85,90 +85,90 @@ describe 'Leaderboard (reverse option)' do
|
|
85
85
|
|
86
86
|
leaders = @leaderboard.leaders(1, :page_size => 1)
|
87
87
|
leaders.size.should be(1)
|
88
|
-
|
88
|
+
|
89
89
|
leaders = @leaderboard.leaders(1, :with_rank => false)
|
90
90
|
leaders.size.should be(Leaderboard::DEFAULT_PAGE_SIZE)
|
91
|
-
member_1 = {:member => 'member_1', :score => 1}
|
92
|
-
member_2 = {:member => 'member_2', :score => 2}
|
93
|
-
member_3 = {:member => 'member_3', :score => 3}
|
94
|
-
leaders[0].should
|
95
|
-
leaders[1].should
|
96
|
-
leaders[2].should
|
91
|
+
member_1 = {:member => 'member_1', :score => 1.0}
|
92
|
+
member_2 = {:member => 'member_2', :score => 2.0}
|
93
|
+
member_3 = {:member => 'member_3', :score => 3.0}
|
94
|
+
leaders[0].should eql(member_1)
|
95
|
+
leaders[1].should eql(member_2)
|
96
|
+
leaders[2].should eql(member_3)
|
97
97
|
|
98
98
|
leaders = @leaderboard.leaders(1, :with_scores => false)
|
99
99
|
leaders.size.should be(Leaderboard::DEFAULT_PAGE_SIZE)
|
100
100
|
member_1 = {:member => 'member_1', :rank => 1}
|
101
101
|
member_2 = {:member => 'member_2', :rank => 2}
|
102
|
-
leaders[0].should
|
103
|
-
leaders[1].should
|
102
|
+
leaders[0].should eql(member_1)
|
103
|
+
leaders[1].should eql(member_2)
|
104
104
|
|
105
105
|
leaders = @leaderboard.leaders(1, :with_scores => false, :with_rank => false)
|
106
106
|
leaders.size.should be(Leaderboard::DEFAULT_PAGE_SIZE)
|
107
107
|
member_1 = {:member => 'member_1'}
|
108
108
|
member_2 = {:member => 'member_2'}
|
109
|
-
leaders[0].should
|
110
|
-
leaders[1].should
|
109
|
+
leaders[0].should eql(member_1)
|
110
|
+
leaders[1].should eql(member_2)
|
111
111
|
|
112
112
|
leaders = @leaderboard.leaders(1, :with_rank => false, :page_size => 1)
|
113
113
|
leaders.size.should be(1)
|
114
|
-
member_1 = {:member => 'member_1', :score => 1}
|
115
|
-
leaders[0].should
|
114
|
+
member_1 = {:member => 'member_1', :score => 1.0}
|
115
|
+
leaders[0].should eql(member_1)
|
116
116
|
end
|
117
117
|
|
118
118
|
it 'should return a single member when calling member_at' do
|
119
119
|
rank_members_in_leaderboard(50)
|
120
|
-
@leaderboard.member_at(1)[:rank].should
|
121
|
-
@leaderboard.member_at(1)[:score].should
|
122
|
-
@leaderboard.member_at(26)[:rank].should
|
123
|
-
@leaderboard.member_at(50)[:rank].should
|
120
|
+
@leaderboard.member_at(1)[:rank].should eql(1)
|
121
|
+
@leaderboard.member_at(1)[:score].should eql(1.0)
|
122
|
+
@leaderboard.member_at(26)[:rank].should eql(26)
|
123
|
+
@leaderboard.member_at(50)[:rank].should eql(50)
|
124
124
|
@leaderboard.member_at(51).should be_nil
|
125
|
-
@leaderboard.member_at(1, :with_member_data => true)[:member_data].should
|
126
|
-
@leaderboard.member_at(1, :use_zero_index_for_rank => true)[:rank].should
|
125
|
+
@leaderboard.member_at(1, :with_member_data => true)[:member_data].should eql({'member_name' => 'Leaderboard member 1'})
|
126
|
+
@leaderboard.member_at(1, :use_zero_index_for_rank => true)[:rank].should eql(0)
|
127
127
|
end
|
128
128
|
|
129
129
|
it 'should return the correct information when calling around_me' do
|
130
130
|
rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
|
131
131
|
|
132
132
|
@leaderboard.total_members.should be(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
|
133
|
-
|
133
|
+
|
134
134
|
leaders_around_me = @leaderboard.around_me('member_30')
|
135
135
|
(leaders_around_me.size / 2).should be(@leaderboard.page_size / 2)
|
136
|
-
|
136
|
+
|
137
137
|
leaders_around_me = @leaderboard.around_me('member_76')
|
138
138
|
leaders_around_me.size.should be(@leaderboard.page_size / 2 + 1)
|
139
|
-
|
139
|
+
|
140
140
|
leaders_around_me = @leaderboard.around_me('member_1')
|
141
141
|
(leaders_around_me.size / 2).should be(@leaderboard.page_size / 2)
|
142
142
|
end
|
143
143
|
|
144
144
|
it 'should return the correct information when calling ranked_in_list' do
|
145
145
|
rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE)
|
146
|
-
|
146
|
+
|
147
147
|
@leaderboard.total_members.should be(Leaderboard::DEFAULT_PAGE_SIZE)
|
148
|
-
|
148
|
+
|
149
149
|
members = ['member_1', 'member_5', 'member_10']
|
150
150
|
ranked_members = @leaderboard.ranked_in_list(members, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS)
|
151
|
-
|
151
|
+
|
152
152
|
ranked_members.size.should be(3)
|
153
153
|
|
154
|
-
ranked_members[0][:rank].should
|
155
|
-
ranked_members[0][:score].should
|
154
|
+
ranked_members[0][:rank].should eql(1)
|
155
|
+
ranked_members[0][:score].should eql(1.0)
|
156
156
|
|
157
|
-
ranked_members[1][:rank].should
|
158
|
-
ranked_members[1][:score].should
|
157
|
+
ranked_members[1][:rank].should eql(5)
|
158
|
+
ranked_members[1][:score].should eql(5.0)
|
159
159
|
|
160
|
-
ranked_members[2][:rank].should
|
161
|
-
ranked_members[2][:score].should
|
160
|
+
ranked_members[2][:rank].should eql(10)
|
161
|
+
ranked_members[2][:score].should eql(10.0)
|
162
162
|
end
|
163
163
|
|
164
164
|
it 'should return the correct information when calling ranked_in_list without scores' do
|
165
165
|
rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE)
|
166
|
-
|
166
|
+
|
167
167
|
@leaderboard.total_members.should be(Leaderboard::DEFAULT_PAGE_SIZE)
|
168
|
-
|
168
|
+
|
169
169
|
members = ['member_1', 'member_5', 'member_10']
|
170
170
|
ranked_members = @leaderboard.ranked_in_list(members, {:with_scores => false, :with_rank => true, :use_zero_index_for_rank => false})
|
171
|
-
|
171
|
+
|
172
172
|
ranked_members.size.should be(3)
|
173
173
|
|
174
174
|
ranked_members[0][:rank].should be(1)
|
@@ -180,18 +180,18 @@ describe 'Leaderboard (reverse option)' do
|
|
180
180
|
|
181
181
|
it 'should return the correct information when calling score_and_rank_for' do
|
182
182
|
rank_members_in_leaderboard
|
183
|
-
|
183
|
+
|
184
184
|
data = @leaderboard.score_and_rank_for('member_1')
|
185
|
-
data[:member].should
|
186
|
-
data[:score].should
|
185
|
+
data[:member].should eql('member_1')
|
186
|
+
data[:score].should eql(1.0)
|
187
187
|
data[:rank].should be(1)
|
188
188
|
end
|
189
189
|
|
190
190
|
it 'should allow you to remove members in a given score range' do
|
191
191
|
rank_members_in_leaderboard
|
192
|
-
|
192
|
+
|
193
193
|
@leaderboard.total_members.should be(5)
|
194
|
-
|
194
|
+
|
195
195
|
@leaderboard.rank_member('cheater_1', 100)
|
196
196
|
@leaderboard.rank_member('cheater_2', 101)
|
197
197
|
@leaderboard.rank_member('cheater_3', 102)
|
@@ -199,9 +199,9 @@ describe 'Leaderboard (reverse option)' do
|
|
199
199
|
@leaderboard.total_members.should be(8)
|
200
200
|
|
201
201
|
@leaderboard.remove_members_in_score_range(100, 102)
|
202
|
-
|
202
|
+
|
203
203
|
@leaderboard.total_members.should be(5)
|
204
|
-
|
204
|
+
|
205
205
|
leaders = @leaderboard.leaders(1)
|
206
206
|
leaders.each do |leader|
|
207
207
|
leader[:score].should be < 100
|
@@ -209,26 +209,26 @@ describe 'Leaderboard (reverse option)' do
|
|
209
209
|
end
|
210
210
|
|
211
211
|
it 'should allow you to merge leaderboards' do
|
212
|
-
foo = Leaderboard.new('foo', Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS, :host => "127.0.0.1", :db => 15)
|
212
|
+
foo = Leaderboard.new('foo', Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS, :host => "127.0.0.1", :db => 15)
|
213
213
|
bar = Leaderboard.new('bar', Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS, :host => "127.0.0.1", :db => 15)
|
214
|
-
|
214
|
+
|
215
215
|
foo.rank_member('foo_1', 1)
|
216
216
|
foo.rank_member('foo_2', 2)
|
217
217
|
bar.rank_member('bar_1', 3)
|
218
218
|
bar.rank_member('bar_2', 4)
|
219
219
|
bar.rank_member('bar_3', 5)
|
220
|
-
|
220
|
+
|
221
221
|
foobar_keys = foo.merge_leaderboards('foobar', ['bar'])
|
222
222
|
foobar_keys.should be(5)
|
223
|
-
|
224
|
-
foobar = Leaderboard.new('foobar', Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS, :host => "127.0.0.1", :db => 15)
|
223
|
+
|
224
|
+
foobar = Leaderboard.new('foobar', Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS, :host => "127.0.0.1", :db => 15)
|
225
225
|
foobar.total_members.should be(5)
|
226
|
-
|
226
|
+
|
227
227
|
first_leader_in_foobar = foobar.leaders(1).first
|
228
228
|
first_leader_in_foobar[:rank].should be(1)
|
229
|
-
first_leader_in_foobar[:member].should
|
230
|
-
first_leader_in_foobar[:score].should
|
231
|
-
|
229
|
+
first_leader_in_foobar[:member].should eql('bar_3')
|
230
|
+
first_leader_in_foobar[:score].should eql(5.0)
|
231
|
+
|
232
232
|
foo.disconnect
|
233
233
|
bar.disconnect
|
234
234
|
foobar.disconnect
|
@@ -237,25 +237,25 @@ describe 'Leaderboard (reverse option)' do
|
|
237
237
|
it 'should allow you to intersect leaderboards' do
|
238
238
|
foo = Leaderboard.new('foo', Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS, :host => "127.0.0.1", :db => 15)
|
239
239
|
bar = Leaderboard.new('bar', Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS, :host => "127.0.0.1", :db => 15)
|
240
|
-
|
240
|
+
|
241
241
|
foo.rank_member('foo_1', 1)
|
242
242
|
foo.rank_member('foo_2', 2)
|
243
243
|
foo.rank_member('bar_3', 6)
|
244
244
|
bar.rank_member('bar_1', 3)
|
245
245
|
bar.rank_member('foo_1', 4)
|
246
246
|
bar.rank_member('bar_3', 5)
|
247
|
-
|
248
|
-
foobar_keys = foo.intersect_leaderboards('foobar', ['bar'], {:aggregate => :max})
|
247
|
+
|
248
|
+
foobar_keys = foo.intersect_leaderboards('foobar', ['bar'], {:aggregate => :max})
|
249
249
|
foobar_keys.should be(2)
|
250
|
-
|
250
|
+
|
251
251
|
foobar = Leaderboard.new('foobar', Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS, :host => "127.0.0.1", :db => 15)
|
252
252
|
foobar.total_members.should be(2)
|
253
|
-
|
253
|
+
|
254
254
|
first_leader_in_foobar = foobar.leaders(1).first
|
255
255
|
first_leader_in_foobar[:rank].should be(1)
|
256
|
-
first_leader_in_foobar[:member].should
|
257
|
-
first_leader_in_foobar[:score].should
|
258
|
-
|
256
|
+
first_leader_in_foobar[:member].should eql('bar_3')
|
257
|
+
first_leader_in_foobar[:score].should eql(6.0)
|
258
|
+
|
259
259
|
foo.disconnect
|
260
260
|
bar.disconnect
|
261
261
|
foobar.disconnect
|
@@ -263,14 +263,14 @@ describe 'Leaderboard (reverse option)' do
|
|
263
263
|
|
264
264
|
it 'should respect the with_scores option in the massage_leader_data method' do
|
265
265
|
rank_members_in_leaderboard(25)
|
266
|
-
|
266
|
+
|
267
267
|
@leaderboard.total_members.should be(25)
|
268
268
|
|
269
269
|
leaders = @leaderboard.leaders(1, {:with_scores => false, :with_rank => false})
|
270
270
|
leaders[0][:member].should_not be_nil
|
271
271
|
leaders[0][:score].should be_nil
|
272
272
|
leaders[0][:rank].should be_nil
|
273
|
-
|
273
|
+
|
274
274
|
@leaderboard.page_size = 25
|
275
275
|
leaders = @leaderboard.leaders(1, {:with_scores => false, :with_rank => false})
|
276
276
|
leaders.size.should be(25)
|
@@ -280,7 +280,7 @@ describe 'Leaderboard (reverse option)' do
|
|
280
280
|
leaders[0][:member].should_not be_nil
|
281
281
|
leaders[0][:score].should_not be_nil
|
282
282
|
leaders[0][:rank].should_not be_nil
|
283
|
-
|
283
|
+
|
284
284
|
@leaderboard.page_size = 25
|
285
285
|
leaders = @leaderboard.leaders(1, Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS)
|
286
286
|
leaders.size.should be(25)
|
@@ -288,21 +288,21 @@ describe 'Leaderboard (reverse option)' do
|
|
288
288
|
|
289
289
|
it 'should return the correct number of members when calling around_me with a page_size options' do
|
290
290
|
rank_members_in_leaderboard(Leaderboard::DEFAULT_PAGE_SIZE * 3 + 1)
|
291
|
-
|
291
|
+
|
292
292
|
leaders_around_me = @leaderboard.around_me('member_30', Leaderboard::DEFAULT_LEADERBOARD_REQUEST_OPTIONS.merge({:page_size => 3}))
|
293
293
|
leaders_around_me.size.should be(3)
|
294
|
-
leaders_around_me[2][:member].should
|
295
|
-
leaders_around_me[0][:member].should
|
294
|
+
leaders_around_me[2][:member].should eql('member_31')
|
295
|
+
leaders_around_me[0][:member].should eql('member_29')
|
296
296
|
end
|
297
297
|
|
298
298
|
it 'should return the correct information when calling percentile_for' do
|
299
299
|
rank_members_in_leaderboard(12)
|
300
|
-
|
301
|
-
@leaderboard.percentile_for('member_1').should
|
302
|
-
@leaderboard.percentile_for('member_2').should
|
303
|
-
@leaderboard.percentile_for('member_3').should
|
304
|
-
@leaderboard.percentile_for('member_4').should
|
305
|
-
@leaderboard.percentile_for('member_12').should
|
300
|
+
|
301
|
+
@leaderboard.percentile_for('member_1').should eql(100)
|
302
|
+
@leaderboard.percentile_for('member_2').should eql(91)
|
303
|
+
@leaderboard.percentile_for('member_3').should eql(83)
|
304
|
+
@leaderboard.percentile_for('member_4').should eql(75)
|
305
|
+
@leaderboard.percentile_for('member_12').should eql(8)
|
306
306
|
end
|
307
307
|
|
308
308
|
it 'should return the correct page when calling page_for a given member in the leaderboard' do
|
@@ -325,13 +325,33 @@ describe 'Leaderboard (reverse option)' do
|
|
325
325
|
@leaderboard.total_members.should be(0)
|
326
326
|
@leaderboard.rank_members('member_1', 1, 'member_10', 10)
|
327
327
|
@leaderboard.total_members.should be(2)
|
328
|
-
@leaderboard.leaders(1).first[:member].should
|
328
|
+
@leaderboard.leaders(1).first[:member].should eql('member_1')
|
329
329
|
end
|
330
330
|
|
331
331
|
it 'should allow you to rank multiple members with an array' do
|
332
332
|
@leaderboard.total_members.should be(0)
|
333
333
|
@leaderboard.rank_members(['member_1', 1, 'member_10', 10])
|
334
334
|
@leaderboard.total_members.should be(2)
|
335
|
-
@leaderboard.leaders(1).first[:member].should
|
335
|
+
@leaderboard.leaders(1).first[:member].should eql('member_1')
|
336
|
+
end
|
337
|
+
|
338
|
+
it 'should allow you to retrieve a given set of members from the leaderboard in a rank range' do
|
339
|
+
rank_members_in_leaderboard(25)
|
340
|
+
|
341
|
+
members = @leaderboard.members_from_rank_range(5, 9)
|
342
|
+
members.size.should be(5)
|
343
|
+
members[0][:member].should eql('member_5')
|
344
|
+
members[0][:score].to_i.should be(5)
|
345
|
+
members[4][:member].should eql('member_9')
|
346
|
+
|
347
|
+
members = @leaderboard.members_from_rank_range(1, 1)
|
348
|
+
members.size.should be(1)
|
349
|
+
members[0][:member].should eql('member_1')
|
350
|
+
|
351
|
+
members = @leaderboard.members_from_rank_range(-1, 26)
|
352
|
+
members.size.should be(25)
|
353
|
+
members[0][:member].should eql('member_1')
|
354
|
+
members[0][:score].to_i.should be(1)
|
355
|
+
members[24][:member].should eql('member_25')
|
336
356
|
end
|
337
357
|
end
|
data/spec/version_spec.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: leaderboard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: redis
|
@@ -77,11 +77,9 @@ files:
|
|
77
77
|
- leaderboard.gemspec
|
78
78
|
- lib/leaderboard.rb
|
79
79
|
- lib/leaderboard/version.rb
|
80
|
-
- spec/db/.gitkeep
|
81
80
|
- spec/leaderboard_spec.rb
|
82
81
|
- spec/reverse_leaderboard_spec.rb
|
83
82
|
- spec/spec_helper.rb
|
84
|
-
- spec/test.conf
|
85
83
|
- spec/version_spec.rb
|
86
84
|
homepage: https://github.com/agoragames/leaderboard
|
87
85
|
licenses: []
|
@@ -97,7 +95,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
97
95
|
version: '0'
|
98
96
|
segments:
|
99
97
|
- 0
|
100
|
-
hash:
|
98
|
+
hash: 1313694139295611168
|
101
99
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
100
|
none: false
|
103
101
|
requirements:
|
@@ -106,17 +104,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
106
104
|
version: '0'
|
107
105
|
segments:
|
108
106
|
- 0
|
109
|
-
hash:
|
107
|
+
hash: 1313694139295611168
|
110
108
|
requirements: []
|
111
109
|
rubyforge_project: leaderboard
|
112
|
-
rubygems_version: 1.8.
|
110
|
+
rubygems_version: 1.8.24
|
113
111
|
signing_key:
|
114
112
|
specification_version: 3
|
115
113
|
summary: Leaderboards backed by Redis in Ruby
|
116
114
|
test_files:
|
117
|
-
- spec/db/.gitkeep
|
118
115
|
- spec/leaderboard_spec.rb
|
119
116
|
- spec/reverse_leaderboard_spec.rb
|
120
117
|
- spec/spec_helper.rb
|
121
|
-
- spec/test.conf
|
122
118
|
- spec/version_spec.rb
|