module Omega::CLI::Contest

Public Instance Methods

clarifications(contest_name, filter_open) click to toggle source
# 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_users(contest, from) click to toggle source
# 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.message}"
  end
end
download_sources(contest_name, path) click to toggle source
# File lib/omega/cli/contest.rb, line 54
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) click to toggle source
# 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.message}"
end
register_users(contest_name, user_file) click to toggle source
# 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.message}"
    failed << user
  end
  puts "Failed users: \n- #{failed.join("\n- ")}"
end
scoreboard(contest_name) click to toggle source
# 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.message}"
end
user_data(user) click to toggle source
# File lib/omega/cli/contest.rb, line 37
def user_data(user)
  puts omega.user(user).full_data.to_yaml
end