Class: Contest

Inherits:
Object
  • Object
show all
Defined in:
lib/atcoder_tools/contest.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Contest

Returns a new instance of Contest.



11
12
13
# File 'lib/atcoder_tools/contest.rb', line 11

def initialize(name)
  @name = name
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



9
10
11
# File 'lib/atcoder_tools/contest.rb', line 9

def name
  @name
end

Class Method Details

.listObject



46
47
48
# File 'lib/atcoder_tools/contest.rb', line 46

def self.list
  Dir.glob("./*").select{|dir| FileTest.directory?(dir)}.map{|dir| Contest.new dir[2..-1] }
end

Instance Method Details

#check_validity!Object



15
16
17
18
19
20
21
22
# File 'lib/atcoder_tools/contest.rb', line 15

def check_validity!
  # 実在するかcheck
  begin
    URI.open(url)
  rescue OpenURI::HTTPError
    raise 'contest name が存在しません。'
  end
end

#create!Object



32
33
34
35
36
37
38
39
40
# File 'lib/atcoder_tools/contest.rb', line 32

def create!
  FileUtils.mkdir_p @name
  tasks = ['a','b','c','d','e','f'].map{|task_name| Task.new(self, task_name)}
  tasks.map(&:create!)
  settings = Settings.new
  settings.current_contest = @name
  settings.contest_language = self, settings.language
  settings.save!
end

#languageObject



42
43
44
# File 'lib/atcoder_tools/contest.rb', line 42

def language
  Settings.new.contest_language(self)
end

#submission_urlObject



28
29
30
# File 'lib/atcoder_tools/contest.rb', line 28

def submission_url
  "https://atcoder.jp/contests/#{@name}/submissions/me"
end

#urlObject



24
25
26
# File 'lib/atcoder_tools/contest.rb', line 24

def url
  "https://atcoder.jp/contests/#{@name}"
end