lib/leaderboard.rb in leaderboard-3.11.0 vs lib/leaderboard.rb in leaderboard-3.12.0
- old
+ new
@@ -367,10 +367,17 @@
# @return the total members in a given score range from the named leaderboard.
def total_members_in_score_range_in(leaderboard_name, min_score, max_score)
@redis_connection.zcount(leaderboard_name, min_score, max_score)
end
+ # Sum of scores for all members in leaderboard
+ #
+ # @return Sum of scores for all members in leaderboard
+ def total_scores
+ all_leaders.map{|hash| hash[:score] }.inject(0, :+)
+ end
+
# Change the score for a member in the leaderboard by a score delta which can be positive or negative.
#
# @param member [String] Member name.
# @param delta [float] Score change.
# @param member_data [String] Optional member data.
@@ -986,10 +993,11 @@
ranks_for_members << data
end
if leaderboard_options[:with_member_data]
- members_data_for_in(leaderboard_name, members).each_with_index do |member_data, index|
+ included_members = ranks_for_members.collect { |member| member[@member_key] }
+ members_data_for_in(leaderboard_name, included_members).each_with_index do |member_data, index|
ranks_for_members[index][@member_data_key] = member_data
end
end
case leaderboard_options[:sort_by]