Sha256: caea2f4ad3836cb90eb97c8d0574f27da8512e2a6db19e5b3c788e900e29319f

Contents?: true

Size: 600 Bytes

Versions: 1

Compression:

Stored size: 600 Bytes

Contents

# frozen_string_literal: true

require 'yaml'

module Codebreaker
  class GameWriter
    FILE_NAME = 'scores.yml'
    private_constant :FILE_NAME

    def initialize(file_name = nil)
      @file_name = file_name || FILE_NAME
    end

    def write(player)
      scores = process_file
      scores << player
      scores = scores.max_by(10, &:points)
      File.open(@file_name, 'w') { |f| f.write scores.to_yaml }
    end

    def process_file
      return [] if !File.exist?(@file_name) || File.zero?(@file_name)
      YAML.load_file(@file_name)
    end
    alias load_scores process_file
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ep-codebreaker-0.4.0 lib/ep-codebreaker/game_writer.rb