class Mastermind::SaveGame
Constants
- SAVE_GAME_FILE
Attributes
datastore[R]
game_file[R]
saved_record[R]
Public Class Methods
new(datastore: Datastore::YmlStore.instance, game_file: SAVE_GAME_FILE)
click to toggle source
# File lib/mastermind/extensions/savegame.rb, line 5 def initialize(datastore: Datastore::YmlStore.instance, game_file: SAVE_GAME_FILE) @datastore = datastore @game_file = game_file @datastore.filename=@game_file load_records end
Public Instance Methods
fetch_all_records()
click to toggle source
# File lib/mastermind/extensions/savegame.rb, line 31 def fetch_all_records @save_record = @datastore.fetch_multiple_records @game_file @save_record end
fetch_player(player_name)
click to toggle source
# File lib/mastermind/extensions/savegame.rb, line 36 def fetch_player(player_name) if player_name.is_a? Integer record = @save_record[player_name - 1] elsif player_name.is_a? String record = @save_record.select{ |record| record[:name].downcase == player_name.downcase }.first end return set_player_attr(record) if record false end
fetch_record(user_name)
click to toggle source
# File lib/mastermind/extensions/savegame.rb, line 65 def fetch_record(user_name) end
load_records()
click to toggle source
# File lib/mastermind/extensions/savegame.rb, line 13 def load_records @save_record = fetch_all_records || [] @save_record.flatten! @save_record end
remove_data_from_save_record(record)
click to toggle source
# File lib/mastermind/extensions/savegame.rb, line 56 def remove_data_from_save_record(record) @save_record.delete(record) save end
save()
click to toggle source
# File lib/mastermind/extensions/savegame.rb, line 61 def save @datastore.save(@game_file, @save_record) end
save_record(player)
click to toggle source
# File lib/mastermind/extensions/savegame.rb, line 19 def save_record(player) if player.is_a? Player player = player.to_h elsif player.is_a? Hash player else raise ArgumentError, 'Invalid player' end @datastore.save(@game_file, player, 'a+') load_records end
set_player_attr(record)
click to toggle source
# File lib/mastermind/extensions/savegame.rb, line 48 def set_player_attr(record) player = Player.new player.set_save_attr(record) remove_data_from_save_record(record) player end