class DnsOne::Util

Constants

DOM_REGEX

Public Class Methods

const_underscore(name) click to toggle source
# File lib/dns_one/util.rb, line 36
def const_underscore name
    name = name.to_s.dup
    name.gsub!('::', '/')
    name.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
    name.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
    name.tr!("-", "_")
    name.downcase!
    name
end
die(msg) click to toggle source
# File lib/dns_one/util.rb, line 6
def die msg
  Global.logger.fatal msg
  exit 1
end
ensure_sytemd() click to toggle source
# File lib/dns_one/util.rb, line 21
def ensure_sytemd
    unless has_systemd?
        STDERR.puts "Systemd not available. Aborting." 
        exit 1
    end
end
has_systemd?() click to toggle source
# File lib/dns_one/util.rb, line 16
def has_systemd?
    File.exist?(`which systemctl`.strip) && 
    File.writable?('/lib/systemd/system')
end
hash_to_ostruct_deep(hash) click to toggle source
# File lib/dns_one/util.rb, line 46
def hash_to_ostruct_deep hash
    os = OpenStruct.new
    hash.each_pair{ |k, v| 
        if v.is_a? Hash
            os[k] = hash_to_ostruct_deep v
        else
            os[k] = v
        end
    }
    os
end
init_logger(logdev, level = Logger::WARN, shift_age = 10, shift_size = 2**20) click to toggle source
# File lib/dns_one/util.rb, line 58
def init_logger logdev, level = Logger::WARN, shift_age = 10, shift_size = 2**20
    if logdev.is_a? String
        begin
            if File.exists? logdev
                File.writable? logdev
            else
                FileUtils.mkdir_p File.dirname(logdev)
            end
        rescue => e
            $stderr.puts "#{e.desc}\nCannot open log file #{logdev}. Will use STDOUT."
            logdev = $stdout
        end
    end
    l = Logger.new logdev, shift_age, shift_size
    l.level = level
    l
end
last_mod(constant) click to toggle source
# File lib/dns_one/util.rb, line 32
def last_mod constant
  constant.to_s.split('::').last
end
match_root(stat) click to toggle source
# File lib/dns_one/util.rb, line 28
def match_root stat
    stat.uid == 0 && stat.gid == 0
end
run(cmd) click to toggle source
# File lib/dns_one/util.rb, line 11
def run cmd
    puts "Running #{cmd}..."
    system cmd
end