Class: CodebreakerRostik::Storage
- Inherits:
-
Object
- Object
- CodebreakerRostik::Storage
- Defined in:
- lib/storage.rb
Constant Summary collapse
- PATH_TO_DB =
File.dirname(__FILE__) + '/db/db.yaml'
Instance Attribute Summary collapse
-
#db_user ⇒ Object
readonly
Returns the value of attribute db_user.
Instance Method Summary collapse
- #add_data_to_db(user) ⇒ Object
- #add_data_to_old_info(user) ⇒ Object
- #file_exist? ⇒ Boolean
-
#initialize ⇒ Storage
constructor
A new instance of Storage.
- #load ⇒ Object
- #sort_db_info(data) ⇒ Object
- #write_to_db ⇒ Object
Constructor Details
#initialize ⇒ Storage
Returns a new instance of Storage.
6 7 8 |
# File 'lib/storage.rb', line 6 def initialize @db_user = [] end |
Instance Attribute Details
#db_user ⇒ Object (readonly)
Returns the value of attribute db_user.
3 4 5 |
# File 'lib/storage.rb', line 3 def db_user @db_user end |
Instance Method Details
#add_data_to_db(user) ⇒ Object
10 11 12 13 |
# File 'lib/storage.rb', line 10 def add_data_to_db(user) file_exist? ? add_data_to_old_info(user) : @db_user.push(user) write_to_db end |
#add_data_to_old_info(user) ⇒ Object
15 16 17 |
# File 'lib/storage.rb', line 15 def add_data_to_old_info(user) @db_user = load.push(user) end |
#file_exist? ⇒ Boolean
19 20 21 |
# File 'lib/storage.rb', line 19 def file_exist? File.exist?(PATH_TO_DB) end |
#load ⇒ Object
27 28 29 |
# File 'lib/storage.rb', line 27 def load YAML.load_file(PATH_TO_DB) end |
#sort_db_info(data) ⇒ Object
23 24 25 |
# File 'lib/storage.rb', line 23 def sort_db_info(data) data.sort_by { |user| [user[:attempts_total], user[:attempts_used], user[:hints_used]] } end |
#write_to_db ⇒ Object
31 32 33 34 35 |
# File 'lib/storage.rb', line 31 def write_to_db db_file = File.open(PATH_TO_DB, 'w') db_file.write(@db_user.to_yaml) db_file.close end |