Sha256: f337c5ed2653efa371568c6d106e6577d6b33d8b48b3ed2cdb7dc7723ffd483d

Contents?: true

Size: 972 Bytes

Versions: 4

Compression:

Stored size: 972 Bytes

Contents

# frozen_string_literal: true

module Codebreakergem
  class FileWorker
    class << self
      def read_from_file(filename)
        permitted_class = [Statistic, Difficulty]
        unless File.file?(Game::FILE)
          puts 'File doesn\'t exist'
          return
        end
        YAML.safe_load(File.read(filename), permitted_class, [], true)
      end

      def add_to_file(filename, data)
        permitted_class = [Statistic, Difficulty]
        data_in_file = YAML.safe_load(File.read(filename), permitted_class, [], true)
        if data_in_file.is_a? Array
          data_in_file << data
          File.open(filename, 'w') { |file| file.write(data_in_file.to_yaml) }
        else
          File.open(filename, 'w') { |file| file.write([data_in_file, data].to_yaml) }
        end
      end

      def write_to_file(filename, data)
        File.open(filename, 'w') { |file| file.write(data.to_yaml) }
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
codebreakergem-0.1.6 lib/classes/file_worker.rb
codebreakergem-0.1.5 lib/classes/file_worker.rb
codebreakergem-0.1.4 lib/classes/file_worker.rb
codebreakergem-0.1.3 lib/classes/file_worker.rb