Class: Codebreaker::Entities::DataStorage
- Inherits:
-
Object
- Object
- Codebreaker::Entities::DataStorage
- Defined in:
- lib/codebreaker_marian/entities/data_storage.rb
Constant Summary collapse
- FILE_DIRECTORY =
'database'- FILE_NAME =
'data.yml'
Instance Method Summary collapse
- #create ⇒ Object
- #load ⇒ Object
- #save(object) ⇒ Object
- #save_game_result(object) ⇒ Object
- #storage_exist? ⇒ Boolean
Instance Method Details
#create ⇒ Object
9 10 11 12 13 |
# File 'lib/codebreaker_marian/entities/data_storage.rb', line 9 def create ensuring_directory_availability File.new(File.join(FILE_DIRECTORY, FILE_NAME), 'w') File.write(File.join(FILE_DIRECTORY, FILE_NAME), [].to_yaml) end |
#load ⇒ Object
15 16 17 |
# File 'lib/codebreaker_marian/entities/data_storage.rb', line 15 def load YAML.safe_load(File.open(File.join(FILE_DIRECTORY, FILE_NAME)), [Symbol, Time]) if storage_exist? end |
#save(object) ⇒ Object
19 20 21 |
# File 'lib/codebreaker_marian/entities/data_storage.rb', line 19 def save(object) File.open(File.join(FILE_DIRECTORY, FILE_NAME), 'w') { |file| file.write(YAML.dump(object)) } end |
#save_game_result(object) ⇒ Object
27 28 29 30 |
# File 'lib/codebreaker_marian/entities/data_storage.rb', line 27 def save_game_result(object) create unless storage_exist? save(load.push(object)) end |
#storage_exist? ⇒ Boolean
23 24 25 |
# File 'lib/codebreaker_marian/entities/data_storage.rb', line 23 def storage_exist? File.exist?(File.join(FILE_DIRECTORY, FILE_NAME)) end |