Created
January 23, 2011 02:39
-
-
Save czarneckid/791756 to your computer and use it in GitHub Desktop.
Leaderboard Usage
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Create a new leaderboard or attach to an existing leaderboard named 'highscores': | |
ruby-1.8.7-p302 > highscore_lb = Leaderboard.new('highscores') | |
=> #<Leaderboard:0x1018e4250 @page_size=25, @port=6379, @host="localhost", @redis_connection=#<Redis client v2.1.1 connected to redis://localhost:6379/0 (Redis v2.1.10)>, @leaderboard_name="highscores"> | |
If you need to pass in options for Redis, you can do this with the redis_options parameter: | |
redis_options = {:host => 'localhost', :port => 6379, :password => 'password', :db => 'some_redis_db'} | |
highscore_lb = Leaderboard.new('highscores', redis_options[:host], redis_options[:port], Leaderboard::DEFAULT_PAGE_SIZE, redis_options)) | |
You can set the page size to something other than the default page size (25): | |
ruby-1.8.7-p302 > highscore_lb.page_size = 5 | |
=> 5 | |
ruby-1.8.7-p302 > highscore_lb | |
=> #<Leaderboard:0x1018e2130 @leaderboard_name="highscores", @page_size=5, @port=6379, @redis_connection=#<Redis client v2.1.1 connected to redis://localhost:6379/0 (Redis v2.1.10)>, @host="localhost", @redis_options={:host=>"localhost", :port=>6379}> | |
Add members to your leaderboard: | |
ruby-1.8.7-p302 > 1.upto(10) do |index| | |
ruby-1.8.7-p302 > highscore_lb.add_member("member_#{index}", index) | |
ruby-1.8.7-p302 ?> end | |
=> 1 | |
Get some information about your leaderboard: | |
ruby-1.8.7-p302 > highscore_lb.total_members | |
=> 10 | |
ruby-1.8.7-p302 > highscore_lb.total_pages | |
=> 1 | |
Get some information about a specific member(s) in the leaderboard: | |
ruby-1.8.7-p302 > highscore_lb.score_for('member_4') | |
=> 4.0 | |
ruby-1.8.7-p302 > highscore_lb.rank_for('member_4') | |
=> 7 | |
ruby-1.8.7-p302 > highscore_lb.rank_for('member_10') | |
=> 1 | |
Get page 1 in the leaderboard: | |
ruby-1.8.7-p302 > highscore_lb.leaders(1) | |
=> [{:member=>"member_10", :rank=>1, :score=>"10"}, {:member=>"member_9", :rank=>2, :score=>"9"}, {:member=>"member_8", :rank=>3, :score=>"8"}, {:member=>"member_7", :rank=>4, :score=>"7"}, {:member=>"member_6", :rank=>5, :score=>"6"}, {:member=>"member_5", :rank=>6, :score=>"5"}, {:member=>"member_4", :rank=>7, :score=>"4"}, {:member=>"member_3", :rank=>8, :score=>"3"}, {:member=>"member_2", :rank=>9, :score=>"2"}, {:member=>"member_1", :rank=>10, :score=>"1"}] | |
Add more members to your leaderboard: | |
ruby-1.8.7-p302 > 50.upto(95) do |index| | |
ruby-1.8.7-p302 > highscore_lb.add_member("member_#{index}", index) | |
ruby-1.8.7-p302 ?> end | |
=> 50 | |
ruby-1.8.7-p302 > highscore_lb.total_pages | |
=> 3 | |
Get an "Around Me" leaderboard for a member: | |
ruby-1.8.7-p302 > highscore_lb.around_me('member_53') | |
=> [{:member=>"member_65", :rank=>31, :score=>"65"}, {:member=>"member_64", :rank=>32, :score=>"64"}, {:member=>"member_63", :rank=>33, :score=>"63"}, {:member=>"member_62", :rank=>34, :score=>"62"}, {:member=>"member_61", :rank=>35, :score=>"61"}, {:member=>"member_60", :rank=>36, :score=>"60"}, {:member=>"member_59", :rank=>37, :score=>"59"}, {:member=>"member_58", :rank=>38, :score=>"58"}, {:member=>"member_57", :rank=>39, :score=>"57"}, {:member=>"member_56", :rank=>40, :score=>"56"}, {:member=>"member_55", :rank=>41, :score=>"55"}, {:member=>"member_54", :rank=>42, :score=>"54"}, {:member=>"member_53", :rank=>43, :score=>"53"}, {:member=>"member_52", :rank=>44, :score=>"52"}, {:member=>"member_51", :rank=>45, :score=>"51"}, {:member=>"member_50", :rank=>46, :score=>"50"}, {:member=>"member_10", :rank=>47, :score=>"10"}, {:member=>"member_9", :rank=>48, :score=>"9"}, {:member=>"member_8", :rank=>49, :score=>"8"}, {:member=>"member_7", :rank=>50, :score=>"7"}, {:member=>"member_6", :rank=>51, :score=>"6"}, {:member=>"member_5", :rank=>52, :score=>"5"}, {:member=>"member_4", :rank=>53, :score=>"4"}, {:member=>"member_3", :rank=>54, :score=>"3"}, {:member=>"member_2", :rank=>55, :score=>"2"}] | |
Get rank and score for an arbitrary list of members (e.g. friends): | |
ruby-1.8.7-p302 > highscore_lb.ranked_in_list(['member_1', 'member_62', 'member_67'], true) | |
=> [{:rank=>55, :member=>"member_1", :score=>1.0}, {:rank=>33, :member=>"member_62", :score=>62.0}, {:rank=>28, :member=>"member_67", :score=>67.0}] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment