Sha256: b2a573b214f32288dfb53ae36acbe093ca9be56e6a3a1141998bb4109b06b035

Contents?: true

Size: 619 Bytes

Versions: 2

Compression:

Stored size: 619 Bytes

Contents

# frozen_string_literal: true

require 'yaml'
# YamlSaver class for store/load entity
class YamlSaver
  DEFAULT_YAML_FILE_NAME = 'data.yaml'

  def initialize(file_name: DEFAULT_YAML_FILE_NAME, permitted_classes: [])
    @file_name = file_name
    @permitted_classes = permitted_classes

    File.new(@file_name, File::CREAT) unless File.exist?(@file_name)
  end

  def store(entity = [])
    File.open(@file_name, 'w') { |f| Psych.dump(entity, f) }
  end

  def load
    options = { permitted_classes: @permitted_classes, aliases: true }
    File.open(@file_name) { |file| Psych.safe_load(file, **options) }
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
codebreaker_kosinskiy-0.1.2 lib/codebreaker/yaml_saver.rb
codebreaker_kosinskiy-0.1.0 lib/codebreaker/yaml_saver.rb