Class: YamlSaver

Inherits:
Object
  • Object
show all
Defined in:
lib/codebreaker/yaml_saver.rb

Overview

YamlSaver class for store/load entity

Constant Summary collapse

DEFAULT_YAML_FILE_NAME =
'data.yaml'

Instance Method Summary collapse

Constructor Details

#initialize(file_name: DEFAULT_YAML_FILE_NAME, permitted_classes: []) ⇒ YamlSaver

Returns a new instance of YamlSaver.



8
9
10
11
12
13
# File 'lib/codebreaker/yaml_saver.rb', line 8

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

Instance Method Details

#loadObject



19
20
21
22
# File 'lib/codebreaker/yaml_saver.rb', line 19

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

#store(entity = []) ⇒ Object



15
16
17
# File 'lib/codebreaker/yaml_saver.rb', line 15

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