module AlexCodebreaker class PlayersRating attr_accessor :stats def initialize @stats = [] load_and_sort_stats end private def load_and_sort_stats return unless File.exist?(AlexCodebreaker.configuration.storage_path) load_stats sort_stats end def load_stats File.open(AlexCodebreaker.configuration.storage_path) do |file| @stats = Array.new(YAML.load_stream(file)) end end def sort_stats @stats.sort_by! { |value| [-value.difficulty_level, value.attempts_used, value.hints_used] } end end end