class Settings
Constants
- Credentials
Public Class Methods
new()
click to toggle source
# File lib/atcoder_tools/settings.rb, line 8 def initialize if File.exist?(".atcoder/settings.yml") @settings = YAML.load_file(".atcoder/settings.yml") else @settings = {} end end
Public Instance Methods
ambiguous_contest(contest)
click to toggle source
# File lib/atcoder_tools/settings.rb, line 20 def ambiguous_contest(contest) case contest when String Contest.new(contest) when Contest contest else raise ArgumentError, "引数は StringまたはContestです。" end end
contest_language(contest)
click to toggle source
# File lib/atcoder_tools/settings.rb, line 60 def contest_language(contest) if @settings[ambiguous_contest(contest).name] @settings[ambiguous_contest(contest).name]['language'] else language end end
contest_language=(data)
click to toggle source
contest, languageの順に代入
# File lib/atcoder_tools/settings.rb, line 69 def contest_language=(data) name = ambiguous_contest(data[0]).name @settings[name] ||= {} @settings[name]['language'] = data[1] end
credentials()
click to toggle source
# File lib/atcoder_tools/settings.rb, line 88 def credentials unless @settings.key?('username') && @settings.key?('password') raise "先にログインしてください!" end return Credentials.new(@settings['username'], Base64.decode64(@settings['password'])) end
current_contest()
click to toggle source
# File lib/atcoder_tools/settings.rb, line 16 def current_contest @settings['current_contest'] && Contest.new(@settings['current_contest']) end
current_contest=(contest)
click to toggle source
# File lib/atcoder_tools/settings.rb, line 31 def current_contest=(contest) @settings['current_contest'] = ambiguous_contest(contest).name end
current_task()
click to toggle source
# File lib/atcoder_tools/settings.rb, line 36 def current_task current_contest && @settings['current_task'] && Task.new(current_contest, @settings['current_task']) end
current_task=(task)
click to toggle source
# File lib/atcoder_tools/settings.rb, line 40 def current_task=(task) case task when String task_name = task when Task task_name = task.name else raise ArgumentError, "引数は StringまたはTaskです。" end @settings['current_task'] = task_name end
destroy_credentials!()
click to toggle source
# File lib/atcoder_tools/settings.rb, line 83 def destroy_credentials! @settings.delete('username') @settings.delete('password') end
language()
click to toggle source
# File lib/atcoder_tools/settings.rb, line 52 def language @settings['language'] || 'ruby' end
language=(lang)
click to toggle source
# File lib/atcoder_tools/settings.rb, line 56 def language=(lang) @settings['language'] = lang end
password=(password)
click to toggle source
# File lib/atcoder_tools/settings.rb, line 75 def password=(password) @settings['password'] = Base64.strict_encode64(password) end
save!()
click to toggle source
# File lib/atcoder_tools/settings.rb, line 95 def save! @settings['updated_at'] = Time.now FileUtils.mkdir_p '.atcoder' open('.atcoder/settings.yml' , 'w') {|f| YAML.dump(@settings , f ) } end
username=(username)
click to toggle source
# File lib/atcoder_tools/settings.rb, line 79 def username=(username) @settings['username'] = username end