Module: Omega::CLI::Contest
- Included in:
- Omega::CLI
- Defined in:
- lib/omega/cli/contest.rb
Instance Method Summary collapse
- #add_problem(contest_name, problem_name) ⇒ Object
- #clarifications(contest_name, filter_open) ⇒ Object
- #copy_problems(contest_name, from) ⇒ Object
- #copy_users(contest, from) ⇒ Object
- #download_sources(contest_name, path) ⇒ Object
- #register_user(contest_name, user) ⇒ Object
- #register_users(contest_name, user_file) ⇒ Object
- #scoreboard(contest_name) ⇒ Object
- #user_data(user) ⇒ Object
Instance Method Details
#add_problem(contest_name, problem_name) ⇒ Object
54 55 56 57 58 59 |
# File 'lib/omega/cli/contest.rb', line 54 def add_problem(contest_name, problem_name) contest = omega.contest(contest_name) contest.add_problem(problem_name) rescue StandardError => e puts "Error adding #{problem_name}: #{e.}" end |
#clarifications(contest_name, filter_open) ⇒ Object
41 42 43 44 45 |
# File 'lib/omega/cli/contest.rb', line 41 def clarifications(contest_name, filter_open) clarifications = omega.clarifications(contest_name) clarifications.select! { |clar| clar[:answer].nil? || clar[:answer].empty? } if filter_open puts clarifications.to_yaml end |
#copy_problems(contest_name, from) ⇒ Object
61 62 63 64 65 66 67 68 69 |
# File 'lib/omega/cli/contest.rb', line 61 def copy_problems(contest_name, from) contest = omega.contest(contest_name) source = omega.contest(from) source.problems.each do |problem| contest.add_problem(problem[:alias]) rescue StandardError => e puts "Error adding #{problem[:alias]}: #{e.}" end end |
#copy_users(contest, from) ⇒ Object
27 28 29 30 31 32 33 34 35 |
# File 'lib/omega/cli/contest.rb', line 27 def copy_users(contest, from) target = omega.contest(contest) source = omega.contest(from) source.users.each do |user| target.add_user(user) rescue StandardError => e puts "Error adding #{user}: #{e.}" end end |
#download_sources(contest_name, path) ⇒ Object
71 72 73 74 75 76 77 |
# File 'lib/omega/cli/contest.rb', line 71 def download_sources(contest_name, path) Dir.mkdir(path) unless File.directory?(path) contest = omega.contest(contest_name) contest.all_sources.each do |source| source.save_at(path) end end |
#register_user(contest_name, user) ⇒ Object
6 7 8 9 10 11 |
# File 'lib/omega/cli/contest.rb', line 6 def register_user(contest_name, user) contest = omega.contest(contest_name) puts contest.add_user(user)[:status] rescue StandardError => e puts "Error adding #{user}: #{e.}" end |
#register_users(contest_name, user_file) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/omega/cli/contest.rb', line 13 def register_users(contest_name, user_file) users = File.readlines(user_file).map(&:strip) contest = omega.contest(contest_name) failed = [] users.each do |user| puts "Adding #{user}..." contest.add_user(user) rescue StandardError => e puts "Error adding #{user}: #{e.}" failed << user end puts "Failed users: \n- #{failed.join("\n- ")}" end |
#scoreboard(contest_name) ⇒ Object
47 48 49 50 51 52 |
# File 'lib/omega/cli/contest.rb', line 47 def scoreboard(contest_name) score = omega.scoreboard(contest_name) score.simple_display.each_with_index { |s, i| puts "#{i + 1}.- #{s.values.join(': ')}" } rescue StandardError => e puts "#{contest_name}: #{e.}" end |
#user_data(user) ⇒ Object
37 38 39 |
# File 'lib/omega/cli/contest.rb', line 37 def user_data(user) puts omega.user(user).full_data.to_yaml end |