class AocCli::Validate

Constants

E

Public Class Methods

ans(attempt:, ans:) click to toggle source
# File lib/aoc_cli/errors.rb, line 244
def self.ans(attempt:, ans:)
        raise E::AnsNil if ans.nil?
        raise E::AtmptDup.new(ans) if Database::Attempt
                .new(attempt:attempt).duplicate?(ans:ans)
        ans
end
cmd(cmd) click to toggle source
# File lib/aoc_cli/errors.rb, line 200
def self.cmd(cmd)
        raise E::CmdNil if cmd.nil?
        cmd
end
day(day) click to toggle source
# File lib/aoc_cli/errors.rb, line 220
def self.day(day)
        raise E::DayNil if day.nil? || day == 0
        raise E::DayInv.new(day) if day.to_i < 1 ||
                day.to_i > 25
        day
end
day_dir(day) click to toggle source
# File lib/aoc_cli/errors.rb, line 250
def self.day_dir(day)
        raise E::DayExist.new(day) if Dir.exist?(day)
        day
end
init(dir) click to toggle source
# File lib/aoc_cli/errors.rb, line 254
def self.init(dir)
        raise E::NotInit unless File.exist?("#{dir}/.meta")
        dir
end
key(key) click to toggle source
# File lib/aoc_cli/errors.rb, line 239
def self.key(key)
        raise E::KeyNil if key.nil?
        raise E::KeyInv unless valid_key?(key)
        key
end
no_config() click to toggle source
# File lib/aoc_cli/errors.rb, line 263
def self.no_config
        raise E::ConfigExist if File.exist?(Paths::Config.path)
        Paths::Config.path
end
not_init(dir:, year:) click to toggle source
# File lib/aoc_cli/errors.rb, line 258
def self.not_init(dir:, year:)
        raise E::AlrInit if File.exist?("#{dir}/.meta") && 
                Metafile.get(:year) != year.to_s
        dir
end
part(part) click to toggle source
# File lib/aoc_cli/errors.rb, line 226
def self.part(part)
        raise E::PartNil  if part.nil?
        raise E::PuzzComp if part.to_i == 3
        raise E::PartInv  if part.to_i < 1 || part.to_i > 2
        part
end
set_key(key) click to toggle source
# File lib/aoc_cli/errors.rb, line 232
def self.set_key(key)
        raise E::KeyNil if key.nil?
        raise E::KeyDup.new(key) if Files::Config::Tools
                .is_set?(val:"#{key}(\b|$)")
        raise E::KeyInv unless valid_key?(key)
        key
end
set_user(user) click to toggle source
# File lib/aoc_cli/errors.rb, line 209
def self.set_user(user)
        raise E::UserNil if user.nil?
        raise E::UserDup.new(user) if user_in_config?(user)
        user
end
user(user) click to toggle source
# File lib/aoc_cli/errors.rb, line 204
def self.user(user)
        raise E::UserNil if user.nil?
        raise E::UserInv.new(user) unless user_in_config?(user)
        user
end
year(year) click to toggle source
# File lib/aoc_cli/errors.rb, line 214
def self.year(year)
        raise E::YearNil if year.nil?
        raise E::YearInv.new(year) if year.to_i < 2015 ||
                year.to_i > 2020
        year
end

Private Class Methods

user_in_config?(user) click to toggle source
# File lib/aoc_cli/errors.rb, line 271
def self.user_in_config?(user)
        Files::Config::Tools.is_set?(key:"cookie=>#{user}")
end
valid_key?(key) click to toggle source
# File lib/aoc_cli/errors.rb, line 268
def self.valid_key?(key)
        /session=(?:[a-f0-9]){96}/.match?(key)
end