class AocCli::Files::Config::Tools

Public Class Methods

get_all(key:) click to toggle source
# File lib/aoc_cli/files.rb, line 8
def self.get_all(key:)
        read.scan(/(?:(?<=(?<!\/\/)#{key}=>)).*$/)
end
get_bool(key:) click to toggle source
# File lib/aoc_cli/files.rb, line 15
def self.get_bool(key:)
        get_line(key:key) == "true" ? true : false
end
get_line(key:) click to toggle source
# File lib/aoc_cli/files.rb, line 11
def self.get_line(key:)
        get_all(key:key)&.first
        #read.scan(/(?:(?<=(?<!\/\/)#{key}=>)).*$/)&.first
end
is_set?(key:nil, val:nil) click to toggle source
# File lib/aoc_cli/files.rb, line 5
def self.is_set?(key:nil, val:nil)
        read.split("\n").grep(/(?<!\/\/)#{key}=>#{val}/).any?
end
mod_line(key:, val:) click to toggle source
# File lib/aoc_cli/files.rb, line 18
def self.mod_line(key:, val:)
        is_set?(key:key) ?
                write(f:read.gsub(/(?<=^#{key}=>).*$/, val.to_s)) :
                write(f:"#{key}=>#{val}\n", m:"a")
end
set_line(key:, val:) click to toggle source
# File lib/aoc_cli/files.rb, line 23
def self.set_line(key:, val:)
        write(f:"#{key}=>#{val}\n", m:"a")
end

Private Class Methods

read() click to toggle source
# File lib/aoc_cli/files.rb, line 27
def self.read
        Paths::Config.create
        File.read(Paths::Config.path)
end
write(f:, m:"w") click to toggle source
# File lib/aoc_cli/files.rb, line 31
def self.write(f:, m:"w")
        Paths::Config.create
        File.write(Paths::Config.path, f, mode:m)
end