Sha256: 09a82769330cd1fb1403940abe1f2f53788ca2468d454e44e8721a3b075edb56

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

require_relative '../utils/db_utils'
require_relative '../config/constants'
class Statistic
  class << self
    def generate_stats
      {
        name: player_name,
        difficulty: difficulty_name,
        total_attempts: total_attempts,
        used_attempts: used_attempts,
        total_hints: total_hints,
        used_hints: used_hints,
        date: Time.now
      }
    end

    def sort_stats
      stats.sort_by { |player| [player[:total_attempts], player[:used_attempts], player[:used_hints]] }
    end

    def stats
      DbUtils.get(DB) || []
    end

    def total_attempts
      DIFFICULTIES[game.difficulty_name.to_sym][:attempts]
    end

    def used_attempts
      DIFFICULTIES[game.difficulty_name.to_sym][:attempts] - game.attempts
    end

    def total_hints
      DIFFICULTIES[game.difficulty_name.to_sym][:hints]
    end

    def used_hints
      DIFFICULTIES[game.difficulty_name.to_sym][:hints] - game.hints
    end

    def difficulty_name
      game.difficulty_name
    end

    def player_name
      game.player_name
    end

    def game
      CurrentGame.game
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
codebreaker_paratskiy-0.2.4 lib/services/statistic_service.rb