Sha256: f52a98ff12270cfa56cb74bf2016e1dd3d21ecd832d63099a389688cc46fff00

Contents?: true

Size: 814 Bytes

Versions: 7

Compression:

Stored size: 814 Bytes

Contents

# frozen_string_literal: true

module Codebreakergem
  class FileWorker
    PERMITTED_CLASSES = [Symbol].freeze

    class << self
      def read_from_file(filename)
        return unless File.file?(Game::FILE)

        YAML.safe_load(File.read(filename), PERMITTED_CLASSES, [], true)
      end

      def add_to_file(filename, data)
        if File.file?(filename)
          data_in_file = YAML.safe_load(File.read(filename), PERMITTED_CLASSES, [], true)
          data_in_file.is_a?(Array) ? data_in_file << data : data_in_file = [data_in_file, data]
          write_to_file(filename, data_in_file)
        else
          write_to_file(filename, data)
        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

7 entries across 7 versions & 1 rubygems

Version Path
codebreakergem-0.1.19 lib/classes/file_worker.rb
codebreakergem-0.1.18 lib/classes/file_worker.rb
codebreakergem-0.1.17 lib/classes/file_worker.rb
codebreakergem-0.1.16 lib/classes/file_worker.rb
codebreakergem-0.1.15 lib/classes/file_worker.rb
codebreakergem-0.1.14 lib/classes/file_worker.rb
codebreakergem-0.1.13 lib/classes/file_worker.rb