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]