class Mastermind::Player

Attributes

color_combo[R]
date_played[R]
guesses[R]
guesses_at_pause_count[R]
name[R]
record[R]
save_game_worker[R]
time_at_game_save[R]
time_started[R]
time_taken[R]

Public Class Methods

new(response: nil, player: nil) click to toggle source

attr_accessor :name, :trials, :time_taken, :date_played

# File lib/mastermind/player.rb, line 7
def initialize(response: nil, player: nil)
  @response = response || Message.new
  set_attr player if player
end

Public Instance Methods

make_save_attr(time_started, color_combo, guesses_at_pause_count) click to toggle source
# File lib/mastermind/extensions/continue_later.rb, line 76
def make_save_attr(time_started, color_combo, guesses_at_pause_count)
  @time_started = time_started
  @color_combo = color_combo
  @guesses_at_pause_count = guesses_at_pause_count
  @time_at_game_save = Time.now.to_i
end
old_to_h()
Alias for: to_h
save_game(*game_data) click to toggle source
# File lib/mastermind/extensions/continue_later.rb, line 69
def save_game(*game_data)
  @save_game_worker ||= SaveGame.new
  make_save_attr(game_data[0], game_data[1], game_data[2]) unless game_data.empty?
  @save_game_worker.save_record(self)

end
set_attr(input) click to toggle source
# File lib/mastermind/player.rb, line 12
def set_attr(input)
  @name = input[:name] if input[:name]
  @guesses = input[:guesses] if input[:guesses]
  @time_taken = input[:time_taken] if input[:time_taken]
  @date_played = input[:date_played] if input[:date_played]
end
set_save_attr(game_data = {}) click to toggle source
# File lib/mastermind/extensions/continue_later.rb, line 92
def set_save_attr(game_data = {})
  # check if game_data is a game or a hash
  @name = game_data[:name]
  @time_started = game_data[:time_started]
  @color_combo = game_data[:color_combo]
  @guesses_at_pause_count = game_data[:guesses_at_pause_count]
  @time_at_game_save = game_data[:time_at_game_save]
  @guesses = @time_taken = nil
end
time() click to toggle source
# File lib/mastermind/player.rb, line 23
def time
  if @time_taken
    mins = @time_taken/60
    secs = @time_taken%60
    "#{mins}m#{secs}s"
  end
end
to_h() click to toggle source
# File lib/mastermind/extensions/continue_later.rb, line 83
def to_h
  player = old_to_h
  player[:time_started] = @time_started
  player[:color_combo] = @color_combo
  player[:guesses_at_pause_count] = @guesses_at_pause_count
  player[:time_at_game_save] = @time_at_game_save
  player
end
Also aliased as: old_to_h
winner_response() click to toggle source
# File lib/mastermind/player.rb, line 19
def winner_response
  @response.winner(@name, @guesses, time).message
end