class Codebreakergem::InformationPresenter

Public Class Methods

rules() click to toggle source
# File lib/classes/information_presenter.rb, line 6
def rules
  I18n.t(:rules)
end
stats() click to toggle source
# File lib/classes/information_presenter.rb, line 10
def stats
  result = I18n.t(:stats_header)
  stats_from_file = FileWorker.read_from_file(Game::FILE)
  return result unless stats_from_file

  if stats_from_file.is_a? Array
    sorted_data = stats_from_file.sort_by { |item| [item[:order], item[:attempts_used], item[:hints_used]] }
    sorted_data.each_with_index { |item, index| result += stats_constructor(index + 1, item) }
  else
    result += stats_constructor(1, stats_from_file)
  end
  result
end
stats_as_hash() click to toggle source
# File lib/classes/information_presenter.rb, line 24
def stats_as_hash
  stats = FileWorker.read_from_file(Game::FILE)
  return stats.sort_by { |item| [item[:order], item[:attempts_used], item[:hints_used]] } if stats.is_a? Array

  [stats].compact
end

Private Class Methods

stats_constructor(index, item) click to toggle source
# File lib/classes/information_presenter.rb, line 33
def stats_constructor(index, item)
  "#{index}\t #{item[:name]}\t #{item[:difficulty]}\t #{item[:attempts_total]}\t " \
    "#{item[:attempts_used]}\t #{item[:hints_total]}\t #{item[:hints_used]}\t #{item[:game_time]}\n"
end