Module: RoundManagement

Defined in:
lib/tdl/runner/round_management.rb

Instance Method Summary collapse

Instance Method Details

#display_and_save_description(label, description, audit_stream, working_directory) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/tdl/runner/round_management.rb', line 20

def display_and_save_description(label, description, audit_stream, working_directory)
  Dir.mkdir(File.join(working_directory, CHALLENGES_FOLDER)) unless File.exists?(File.join(working_directory, CHALLENGES_FOLDER))
  
  output_description = File.open("#{working_directory}/#{CHALLENGES_FOLDER}/#{label}.txt", 'w')
  output_description << description
  output_description.close
  audit_stream.write_line("Challenge description saved to file: #{CHALLENGES_FOLDER}/#{label}.txt.")

  output_last_round = File.open(File.join(working_directory, LAST_FETCHED_ROUND_PATH), 'w')
  output_last_round << label
  output_last_round.close

  'OK'
end

#get_last_fetched_round(working_directory) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/tdl/runner/round_management.rb', line 35

def get_last_fetched_round(working_directory)
  begin
    File.read(File.join(working_directory, LAST_FETCHED_ROUND_PATH))
  rescue StandardError => _
    'noRound'
  end
end

#save_description(listener, raw_description, audit_stream, working_directory) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/tdl/runner/round_management.rb', line 10

def save_description(listener, raw_description, audit_stream, working_directory)
  return unless raw_description.include? "\n"

  newline_index = raw_description.index("\n")
  round_id = raw_description[0..newline_index - 1]
  listener.on_new_round(round_id) if round_id != get_last_fetched_round(working_directory)

  display_and_save_description(round_id, raw_description, audit_stream, working_directory)
end