Allow for customization of member_data namespace #45
Allow for custom keys to be set for customizing the data returned from calls like leaders or around_me#44
Added score_for_percentile method to be able to calculate the score for a given percentile value in the leaderboard.
Added rank_member_across method to be able to rank a member across multiple leaderboards at once.
Added remove_members_outside_rank method to remove members from the leaderboard outside a given rank.
Added :members_only option for various leaderboard requests.
Fixed a data leak in expire_leaderboard and expire_leaderboard_at to also set expiration on the member data hash.
Fixed a bug in remove_member that would remove all of the optional member data.
Added rank_member_if and rank_member_if_in methods that allow you to rank a member in the leaderboard based on execution of a lambda.
No longer cast scores to a floating point automatically. If requesting a score for an unknown member in the leaderboard, return nil. Under the old behavior, a nil score gets returned as 0.0. This is misleading as 0.0 is a valid score.
Removes :use_zero_index_for_rank_option as valid option for requesting data from the leaderboard. Original proposal
Adds :sort_by as valid option for requesting data from the leaderboard. Original proposal
Removes :with_scores and :with_ranks as valid options for requesting data from the leaderboard.
Added members_from_rank_range and members_from_rank_range_in methods to be able to retrieve members from a leaderboard in a given rank range.
Added all_leaders and all_leaders_from methods to retrieve all members from a leaderboard. You may also use the aliases all_members or all_members_from.
Added expire_leaderboard(seconds) to expire the leaderboard in a set number of seconds.
Added expire_leaderboard_at(timestamp) to expire the leaderboard at a specific UNIX timestamp.
Added optional page_size parameter to the total_pages method.
Fix for #17 - Leaderboard not compatible with redis 2.1.1. Redis' zrangebyscore and zrevrangebyscore methods do not return scores by default. No need to pass the option in the initial call.
Added members_from_score_range and members_from_score_range_in methods. These will retrieve members from the leaderboard that fall within a given score range.
Add member_at and member_at_in methods. These will retrieve a given member from the leaderboard at the specified position.
members and members_in are now aliases for the leaders and leaders_in methods.
Added ability to store optional member data alongside the leaderboard data.
:with_member_data is now a valid request option when retrieving leader data.
Added accessor for reverse option so that you can set reverse after creating a leaderboard to see results in either highest-to-lowest or lowest-to-highest order.
Added rank_members(members_and_scores) and rank_members_in(leaderboard_name, members_and_scores) allowing you to pass in some variable number of member_name, score and so on or an actual array of those data items. Use this method to do bulk insert of data, but be mindful of the amount of data you are inserting since a single transaction can get quite large.
Added page_for(member, page_size = DEFAULT_PAGE_SIZE) and page_for_in(leaderboard_name, member, page_size = DEFAULT_PAGE_SIZE) calls to allow you to determine the page where a member falls in the leaderboard
Added :reverse => false to Leaderboard::DEFAULT_OPTIONS to support leaderboards sorted from lowest to highest score instead of highest to lowest score. (Thanks @siuying)
Fix for checking to see if a member actually exists in the leaderboard for the around_me calls
Return appropriate nil in data returned for calls such as percentile_for and ranked_in_list for non-existent members