class Contest::Driver::DriverBase
Attributes
args[R]
config[RW]
options[RW]
Public Class Methods
new(new_args = [])
click to toggle source
Calls superclass method
# File lib/contest/driver/base.rb, line 22 def initialize(new_args = []) @args = new_args.clone # submit options @options ||= {} # site config @config ||= {} @config["file"] ||= {} @config["submit_rules"] ||= {} # call DriverEvent#initialize super() initialize_ext end
Public Instance Methods
define_options(&block)
click to toggle source
# File lib/contest/driver/base.rb, line 72 def define_options &block @blocks ||= [] @blocks.push(block) end
get_commit_message(status)
click to toggle source
# File lib/contest/driver/base.rb, line 112 def get_commit_message status if @options[:message].nil? message = @config["submit_rules"]["message"] || DEFAULT_COMMIT_MESSAGE message = message.gsub '${site}', get_site_name message = message.gsub '${problem-id}', get_problem_id(options) message = message.gsub '${status}', status message = "\n#{get_commit_message_ext}" unless get_commit_message_ext.nil? else message = @options[:message] end message end
get_commit_message_ext()
click to toggle source
# File lib/contest/driver/base.rb, line 108 def get_commit_message_ext nil end
get_desc()
click to toggle source
# File lib/contest/driver/base.rb, line 68 def get_desc '' end
get_opts()
click to toggle source
# File lib/contest/driver/base.rb, line 77 def get_opts get_opts_ext() define_options do opt( :source, "Specify submitted code (Ex: main.cpp)", :type => :string, :required => false, ) opt( :language, "Specify programming language (Ex: C++, Java or etc...)", :type => :string, :required => false, ) opt( :message, "Set git-commit message", :type => :string, :required => false, ) end Trollop::options args, @blocks do |blocks| version "git-contest driver" # set driver options blocks.each do |b| instance_eval &b end end end
get_opts_ext()
click to toggle source
# File lib/contest/driver/base.rb, line 39 def get_opts_ext # Example: # define_options do # opt( # :problem_id, # "Problem ID (Ex: 1000, 123, 0123, etc...)", # :type => :string, # :required => true, # ) # end raise 'TODO: Implement' end
get_problem_id(options)
click to toggle source
# File lib/contest/driver/base.rb, line 56 def get_problem_id(options) raise 'TODO: Implement' end
get_site_name()
click to toggle source
# File lib/contest/driver/base.rb, line 52 def get_site_name raise 'TODO: Implement' end
initialize_ext()
click to toggle source
# File lib/contest/driver/base.rb, line 35 def initialize_ext nil end
resolve_language(label)
click to toggle source
# File lib/contest/driver/base.rb, line 60 def resolve_language(label) raise 'TODO: Implement' end
submit()
click to toggle source
submit a solution
# File lib/contest/driver/base.rb, line 126 def submit @options[:source] = Utils.resolve_path( @options[:source] || @config["submit_rules"]["source"] || DEFAULT_SOURCE_PATH ) if Utils.check_file_map(@options[:source], @config["file"]["ext"]) @options[:language] ||= Utils.resolve_file_map(@options[:source], @config["file"]["ext"]) else @options[:language] ||= Utils.resolve_language(@options[:source]) end @options[:language] = resolve_language Utils.normalize_language(@options[:language]) submit_ext() end
submit_ext(config, source_path, options)
click to toggle source
# File lib/contest/driver/base.rb, line 64 def submit_ext(config, source_path, options) raise 'TODO: Implement' end